home *** CD-ROM | disk | FTP | other *** search
/ Complete RPG Maker XP - 41 Games / tg esp 48 rpg maker.iso / RPG3D / Tools_Utilities / Quark.exe / Quark / addons / Half-Life2 / base.qrk next >
Encoding:
Text File  |  2005-08-05  |  326.3 KB  |  14,400 lines

  1. QQRKSRC1
  2. // This file has been written by QuArK QuArK 6.4 alpha
  3. // It's the text version of file: base.qrk
  4.  
  5. // common hl2-source entities. last changes august/5/2005 by cbxpm.
  6.  
  7. {
  8.   t_player_size:incl = { bbox = '-16 -16 -24 16 16 32' }
  9.   Toolbox Folders.qtx =
  10.   {
  11.     Toolbox = "New map items..."
  12.     Root = "Common HL2 Entities.qtxfolder"
  13.     Common HL2 Entities.qtxfolder =
  14.     {
  15.  
  16. // env entities
  17.  
  18.       env_* entities.qtxfolder =
  19.       {
  20.         env_beam:e =
  21.         {
  22.           origin = "0 0 0"
  23.           ;desc = "An entity that creates a visible beam between two points. T"
  24.            "he points can be attached to entities to make the beam move around"
  25.            "."
  26.           renderamt = "100"
  27.           rendercolor = "255 255 255"
  28.           Radius = "256"
  29.           life = "1"
  30.           BoltWidth = "2"
  31.           NoiseAmplitude = "0"
  32.           texture = "sprites/laserbeam.spr"
  33.           TextureScroll = "35"
  34.           framerate = "0"
  35.           framestart = "0"
  36.           StrikeTime = "1"
  37.           damage = "0"
  38.           TouchType = "0"
  39.         }
  40.         env_beverage:e =
  41.         {
  42.           origin = "0 0 0"
  43.           ;desc = "HL1 Legacy: Beverage Dispenser."
  44.           health = "10"
  45.           beveragetype = "0"
  46.         }        
  47.         env_blood:e =
  48.         {
  49.           origin = "0 0 0"
  50.           ;desc = "An entity used to spawn blood effects."
  51.           spraydir = "0 0 0"
  52.           color = "0"
  53.           amount = "100"
  54.         }
  55.         env_bubbles:b =
  56.         {
  57.           t_nodrawpoly=!
  58.           ;desc = "An entity used to create a volume in which to spawn bubbles"
  59.            "."
  60.           density = "2"
  61.           frequency = "2"
  62.           current = "0"
  63.         }
  64.         env_credits:e =
  65.         {
  66.           origin = "0 0 0"
  67.           ;desc = "An entity to control the rolling credits."
  68.         }
  69.         env_cubemap:e =
  70.         {
  71.           origin = "0 0 0"
  72.           ;desc = "An entity that creates a sample point for the Cubic Environ"
  73.            "ment Map."
  74.           cubemapsize = "0"
  75.         }
  76.         env_dustpuff:e =
  77.         {
  78.           origin = "0 0 0"
  79.           ;desc = "An entity that can emit dust puffs."
  80.           scale = "8"
  81.           speed = "16"
  82.           color = "128 128 128"
  83.         }
  84.         env_effectscript:e =
  85.         {
  86.           origin = "0 0 0"
  87.           ;desc = "An entity that allows you to script special visual effects "
  88.            "via a script file."
  89.           model = "models/Effects/teleporttrail.mdl"
  90.           scriptfile = "scripts/effects/testeffect.txt"
  91.         }
  92.         env_embers:b =
  93.         {
  94.           t_nodrawpoly=!
  95.           ;desc = "An entity used to create a volume in which to spawn fire em"
  96.            "bers."
  97.           particletype = "0"
  98.           density = "50"
  99.           lifetime = "4"
  100.           speed = "32"
  101.           rendercolor = "255 255 255"
  102.         }
  103.         env_entity_igniter:e =
  104.         {
  105.           origin = "0 0 0"
  106.           ;desc = "An entity that catches a target entity on fire. If the enti"
  107.            "ty is an animating model, it will have sprite flames attached to i"
  108.            "ts skeleton. Otherwise the entity will emit particle flame puffs."
  109.           lifetime = "10"
  110.         }
  111.         env_entity_maker:e =
  112.         {
  113.           origin = "0 0 0"
  114.           ;desc = "Spawns the specified entity template at its origin. If set "
  115.            "to auto-spawn, it will spawn the template whenever there's room an"
  116.            "d the player is looking elsewhere."
  117.         }
  118.         env_explosion:e =
  119.         {
  120.           origin = "0 0 0"
  121.           ;desc = "An entity that creates an explosion at its origin."
  122.           iMagnitude = "100"
  123.           iRadiusOverride = "0"
  124.           fireballsprite = "sprites/zerogxplode.spr"
  125.           rendermode = "5"
  126.         }
  127.         env_fade:e =
  128.         {
  129.           origin = "0 0 0"
  130.           ;desc = "An entity that controls screen fades."
  131.           duration = "2"
  132.           holdtime = "0"
  133.           renderamt = "255"
  134.           rendercolor = "0 0 0"
  135.         }
  136.         env_fire:e =
  137.         {
  138.           origin = "0 0 0"
  139.           ;desc = "An entity that handles a single flame at its origin. The fl"
  140.            "ame causes heat 'damage' to other env_fire entities around it, and"
  141.            " will eventually ignite non-flaming env_fire entities nearby, caus"
  142.            "ing the fire to spread."
  143.           health = "30"
  144.           firesize = "64"
  145.           fireattack = "4"
  146.           firetype = "0"
  147.           ignitionpoint = "32"
  148.           damagescale = "1.0"
  149.         }
  150.         env_firesensor:e =
  151.         {
  152.           origin = "0 0 0"
  153.           ;desc = "An entity that detects changes in heat nearby."
  154.           spawnflags = "1"
  155.           fireradius = "128"
  156.           heatlevel = "32"
  157.           heattime = "0"
  158.         }
  159.         env_firesource:e =
  160.         {
  161.           origin = "0 0 0"
  162.           ;desc = "An entity that provides heat to all nearby env_fire entitie"
  163.            "s. Cannot be extinguished."
  164.           fireradius = "128"
  165.           firedamage = "10"
  166.         }
  167.         env_fog_controller:e =
  168.         {
  169.           origin = "0 0 0"
  170.           ;desc = "An entity that controls the fog and view distance in the ma"
  171.            "p."
  172.           fogenable = "0"
  173.           fogblend = "0"
  174.           use_angles = "0"
  175.           fogcolor = "255 255 255"
  176.           fogcolor2 = "255 255 255"
  177.           fogdir = "1 0 0"
  178.           fogstart = "500.0"
  179.           fogend = "2000.0"
  180.           farz = "-1"
  181.         }        
  182.         env_funnel:e =
  183.         {
  184.           origin = "0 0 0"
  185.           ;desc = "HL1 Legacy: Large Portal Funnel"
  186.         }        
  187.         env_hudhint:e =
  188.         {
  189.           origin = "0 0 0"
  190.           ;desc = "An entity to control the display of HUD hints. HUD hints ar"
  191.            "e used to show the player what key is bound to a particular comman"
  192.            "d."
  193.         }        
  194.         env_laser:e =
  195.         {
  196.           origin = "0 0 0"
  197.           ;desc = "An entity that creates a laser beam between itself and a gi"
  198.            "ven target."
  199.           renderamt = "100"
  200.           rendercolor = "255 255 255"
  201.           width = "2"
  202.           NoiseAmplitude = "0"
  203.           texture = "sprites/laserbeam.spr"
  204.           TextureScroll = "35"
  205.           framestart = "0"
  206.           damage = "100"
  207.           dissolvetype = "None"
  208.         }        
  209.         env_lightglow:e =
  210.         {
  211.           origin = "0 0 0"
  212.           ;desc = "An entity that puts an additive glow in the world, mostly u"
  213.            "sed over light sources."
  214.           rendercolor = "255 255 255"
  215.           VerticalGlowSize = "30"
  216.           HorizontalGlowSize = "30"
  217.           MinDist = "500"
  218.           MaxDist = "2000"
  219.           OuterMaxDist = "0"
  220.           GlowProxySize = "2.0"
  221.         }        
  222.         env_message:e =
  223.         {
  224.           origin = "0 0 0"
  225.           ;desc = "An entity that draws a text message on player's HUDs."
  226.           messagevolume = "10"
  227.           messageattenuation = "0"
  228.         }        
  229.         env_microphone:e =
  230.         {
  231.           origin = "0 0 0"
  232.           ;desc = "An entity that acts as a microphone. It works in one of two"
  233.            " modes. If it has a 'Speaker' set, it picks up all sounds within t"
  234.            "he specified sound range, and rebroadcasts them through the Speake"
  235.            "r entity. In this Speaker mode, it ignores the Hears X spawnflags "
  236.            "and does not fire the SoundLevel output. If it has no Speaker set,"
  237.            " it measures the sound level at a point, and outputs the sound lev"
  238.            "el as a value between 0 and 1. In Measuring mode, it only hears so"
  239.            "unds that match the Hear X spawnflags."
  240.           speaker_dsp_preset = "0"
  241.           spawnflags = "15"
  242.           Sensitivity = "1"
  243.           SmoothFactor = "0"
  244.           MaxRange = "240"
  245.         }        
  246.         env_particlelight:e =
  247.         {
  248.           origin = "0 0 0"
  249.           ;desc = "An entity that can be used to light the smoke particles emi"
  250.            "tted by env_smokestack entities. Does not light any other particle"
  251.            " types."
  252.           Color = "255 0 0"
  253.           Intensity = "5000"
  254.           directional = "0"
  255.         }        
  256.         env_particlescript:e =
  257.         {
  258.           origin = "0 0 0"
  259.           ;desc = "An entity that has special animation events that can be fir"
  260.            "ed by a model with an animation inside its .qc designed foruse by "
  261.            "this entity."
  262.           model = "models/Ambient_citadel_paths.mdl"
  263.         }        
  264.         env_physexplosion:e =
  265.         {
  266.           origin = "0 0 0"
  267.           ;desc = "An entity that creates an explosion at its origin. If the n"
  268.            "o-damage spawnflag is set, the explosion won't be visible, but wil"
  269.            "l apply force to any physics objects within its radius."
  270.           magnitude = "100"
  271.           radius = "0"
  272.           spawnflags = "1"
  273.         }        
  274.         env_physimpact:e =
  275.         {
  276.           origin = "0 0 0"
  277.           ;desc = "An entity that will cause a physics impact on another entit"
  278.            "y."
  279.           angles = "0 0 0"
  280.           magnitude = "100"
  281.           distance = "0"
  282.         }        
  283.         env_player_surface_trigger:e =
  284.         {
  285.           origin = "0 0 0"
  286.           ;desc = "An entity that monitors the material of the surface the pla"
  287.            "yer is standing on, and fires outputs whenever it changes to/from "
  288.            "a specific material."
  289.           gamematerial = "0"
  290.         }        
  291.          env_rotorshooter:e =
  292.         {
  293.           origin = "0 0 0"
  294.           ;desc = "An entity that creates gibs when it's within the influence "
  295.            "of a helicopter's rotor wash."
  296.           shootsounds = "-1"
  297.           simulation = "0"
  298.           skin = "0"
  299.           rotortime = "1"
  300.           rotortimevariance = "0.3"
  301.         }       
  302.         env_screenoverlay:e =
  303.         {
  304.           origin = "0 0 0"
  305.           ;desc = "An entity that can display and control a set of screen over"
  306.            "lays, to be displayed over the player's view. Useful for view effe"
  307.            "cts like drunkenness, or teleporter afterimages, etc."
  308.           OverlayTime1 = "1.0"
  309.           OverlayTime2 = "1.0"
  310.           OverlayTime3 = "1.0"
  311.           OverlayTime4 = "1.0"
  312.           OverlayTime5 = "1.0"
  313.           OverlayTime6 = "1.0"
  314.           OverlayTime7 = "1.0"
  315.           OverlayTime8 = "1.0"
  316.           OverlayTime9 = "1.0"
  317.           OverlayTime10 = "1.0"
  318.         }        
  319.         env_shake:e =
  320.         {
  321.           origin = "0 0 0"
  322.           ;desc = "An entity to control screen shake on players."
  323.           amplitude = "4"
  324.           radius = "500"
  325.           duration = "1"
  326.           frequency = "2.5"
  327.         }        
  328.         env_shooter:e =
  329.         {
  330.           origin = "0 0 0"
  331.           ;desc = "An entity that shoots models, or sprites, out of its origin"
  332.            "."
  333.           shootsounds = "-1"
  334.           simulation = "0"
  335.           skin = "0"
  336.         }        
  337.         env_smokestack:e =
  338.         {
  339.           origin = "0 0 0"
  340.           ;desc = "An entity that spits out a constant stream of smoke. See pa"
  341.            "rticlezoo.vmf for sample usage. You can place up to two env_partic"
  342.            "lelight entities near the smoke stack to add ambient light to its "
  343.            "particles."
  344.           InitialState = "0"
  345.           BaseSpread = "20"
  346.           SpreadSpeed = "15"
  347.           Speed = "30"
  348.           StartSize = "20"
  349.           EndSize = "30"
  350.           Rate = "20"
  351.           JetLength = "180"
  352.           WindAngle = "0"
  353.           WindSpeed = "0"
  354.           SmokeMaterial = "particle/SmokeStack.vmt"
  355.           twist = "0"
  356.           rendercolor = "255 255 255"
  357.           renderamt = "255"
  358.         }
  359.         env_smoketrail:e =
  360.         {
  361.           origin = "0 0 0"
  362.           ;desc = "An entity that creates a smoke trail."
  363.           opacity = "0.75"
  364.           spawnrate = "20"
  365.           lifetime = "5.0"
  366.           startcolor = "192 192 192"
  367.           endcolor = "160 160 160"
  368.           emittime = "0"
  369.           minspeed = "10"
  370.           maxspeed = "20"
  371.           mindirectedspeed = "0"
  372.           maxdirectedspeed = "0"
  373.           startsize = "15"
  374.           endsize = "50"
  375.           spawnradius = "15"
  376.           firesprite = "sprites/firetrail.spr"
  377.           smokesprite = "sprites/whitepuff.spr"
  378.         }        
  379.         env_soundscape:e =
  380.         {
  381.           origin = "0 0 0"
  382.           ;desc = "An entity to control sound in an area. The active soundscap"
  383.            "e at any time is the last one that had line-of-sight to the player"
  384.            ", and was within the radius."
  385.           radius = "128"
  386.           soundscape = "Nothing"
  387.         }
  388.         env_soundscape_proxy:e =
  389.         {
  390.           origin = "0 0 0"
  391.           ;desc = "An entity that acts like a soundscape but gets all of its s"
  392.            "ound parameters from another env_soundscape entity."
  393.           radius = "128"
  394.         }        
  395.         env_soundscape_triggerable:e =
  396.         {
  397.           origin = "0 0 0"
  398.           ;desc = "An entity that works like env_soundscape except that it wor"
  399.            "ks in conjunction with trigger_soundscape to determine when a play"
  400.            "er hears it."
  401.           radius = "128"
  402.           soundscape = "Nothing"
  403.         }        
  404.         env_spark:e =
  405.         {
  406.           origin = "0 0 0"
  407.           ;desc = "An entity used to create sparks at its origin."
  408.           MaxDelay = "0"
  409.           Magnitude = "1"
  410.           TrailLength = "1"
  411.         }        
  412.         env_splash:e =
  413.         {
  414.           origin = "0 0 0"
  415.           ;desc = "An entity that creates a splash effect at its origin. If th"
  416.            "e 'find water surface' spawnflag is set, it will instead trace dow"
  417.            "n below itself to find the water surface on which to create splash"
  418.            "es."
  419.           scale = "8.0"
  420.           spawnflags = "2"
  421.         }        
  422.         env_sprite:e =
  423.         {
  424.           origin = "0 0 0"
  425.           ;desc = "An entity that controls the drawing of a sprite in the worl"
  426.            "d."
  427.           framerate = "10.0"
  428.           model = "sprites/glow01.spr"
  429.           GlowProxySize = "2.0"
  430.         }        
  431.         env_steam:e =
  432.         {
  433.           origin = "0 0 0"
  434.           ;desc = "An entity used to create a jet of steam."
  435.           InitialState = "0"
  436.           type = "0"
  437.           SpreadSpeed = "15"
  438.           Speed = "120"
  439.           StartSize = "10"
  440.           EndSize = "25"
  441.           Rate = "26"
  442.           rendercolor = "255 255 255"
  443.           JetLength = "80"
  444.           renderamt = "255"
  445.         }        
  446.         env_sun:e =
  447.         {
  448.           origin = "0 0 0"
  449.           ;desc = "An entity to control & draw a sun effect in the sky."
  450.           use_angles = "0"
  451.           pitch = "0"
  452.           rendercolor = "100 80 80"
  453.           size = "16"
  454.         }        
  455.         env_texturetoggle:e =
  456.         {
  457.           origin = "0 0 0"
  458.           ;desc = "An entity that allows you to change the textures on other b"
  459.            "rush-built entities."
  460.         }        
  461.         env_tonemap_controller:e =
  462.         {
  463.           origin = "0 0 0"
  464.           ;desc = "An entity that controls the HDR tonemapping for the player."
  465.            " Think of it as a method of controlling the exposure of the player"
  466.            "'s eyes."
  467.         }        
  468.         env_wind:e =
  469.         {
  470.           origin = "0 0 0"
  471.           ;desc = "An entity to control wind in the map. Partially functional."
  472.           minwind = "20"
  473.           maxwind = "50"
  474.           mingust = "100"
  475.           maxgust = "250"
  476.           mingustdelay = "10"
  477.           maxgustdelay = "20"
  478.           gustdirchange = "20"
  479.         }        
  480.         env_zoom:e =
  481.         {
  482.           origin = "0 0 0"
  483.           ;desc = "An entity that can be used to control the player's FOV. Use"
  484.            "ful for scenes where the player's view is being controlled, or pla"
  485.            "yer-usable binoculars/telescopes, etc."
  486.           Rate = "1.0"
  487.           FOV = "75"
  488.         }
  489.       }
  490.  
  491. // filter entities
  492.  
  493.       filter_* entities.qtxfolder =
  494.       {
  495.         filter_activator_class:e =
  496.         {
  497.           origin = "0 0 0"
  498.           ;desc = "A filter that filters by the class name of the activator."
  499.         }
  500.         filter_activator_name:e =
  501.         {
  502.           origin = "0 0 0"
  503.           ;desc = "A filter that filters by the name of the activator."
  504.         }
  505.         filter_damage_type:e =
  506.         {
  507.           origin = "0 0 0"
  508.           ;desc = "A damage filter that filters by the type of damage inflicte"
  509.            "d. This can only be used as a damage filter, not as an activator f"
  510.            "ilter."
  511.           damagetype = "64"
  512.         }
  513.          filter_multi:e =
  514.         {
  515.           origin = "0 0 0"
  516.           ;desc = "A filter that tests the activator against multiple filters."
  517.            " This allows you to build more complex filters, such as'Allow anyo"
  518.            "ne on Team 1 who is also class engineer', or 'Allow everyone excep"
  519.            "t classes npc_zombie and npc_headcrab'."
  520.           filtertype = "0"
  521.           Negated = "0"
  522.         }
  523.       }
  524.  
  525. // func entities
  526.  
  527.       func_* entities.qtxfolder =
  528.       {
  529.         func_areaportal:b =
  530.         {
  531.           t_portalpoly=!
  532.           ;desc = "A portal brush used to manage visibility in maps. Portals d"
  533.            "efine areas, which are spaces that are connected in the map. Both "
  534.            "sides of a portal cannot touch the same area, for example, a dough"
  535.            "nut shaped map would require at least two portals to divide the ma"
  536.            "p into two areas. A linear map could be divided into two areas wit"
  537.            "h a single area portal."
  538.           StartOpen = "0"
  539.         }
  540.         func_areaportalwindow:b =
  541.         {
  542.           t_portalpoly=!
  543.           ;desc = "An entity that can be used to optimize the visibility in a "
  544.            "map. If you seal off an area with them, when the viewer moves the "
  545.            "specified distance away from them, they will go opaque and the par"
  546.            "ts inside the area will not be drawn. The 'target' brush model sho"
  547.            "uld enclose the func_areaportal window so no parts of it are culle"
  548.            "d by the window. If you use the optional foreground brush model, t"
  549.            "hen it should enclose the 'target' brush model."
  550.           FadeStartDist = "128"
  551.           FadeDist = "512"
  552.           TranslucencyLimit = "0.2"
  553.         }
  554.         func_breakable:b =
  555.         {
  556.           t_detailpoly=!
  557.           ;desc = "A brush entity that can be broken from damage, or an input."
  558.           minhealthdmg = "0"
  559.           physdamagescale = "1.0"
  560.         }
  561.         func_breakable_surf:b =
  562.         {
  563.           t_nodrawpoly=!
  564.           ;desc = "A breakable surface, for partially breakable glass / tile /"
  565.            " etc.  All faces but the desired visible one must be marked as NOD"
  566.            "RAW and thatface must be 4 sided.  The material applied to the vis"
  567.            "ible face must be set up to be breakable."
  568.           health = "5"
  569.           fragility = "100"
  570.           surfacetype = "0"
  571.           upperleft = "0 0 0"
  572.           upperright = "0 0 0"
  573.           lowerright = "0 0 0"
  574.           lowerleft = "0 0 0"
  575.         }
  576.         func_brush:b =
  577.         {
  578.           t_detailpoly=!
  579.           ;desc = "An brush built entity with various features."
  580.           Solidity = "0"
  581.           solidbsp = "0"
  582.         }
  583.         func_button:b =
  584.         {
  585.           t_detailpoly=!
  586.           ;desc = "A brush entity that's designed to be used for a player-usea"
  587.            "ble button. When used by the player, it moves to a pressed positio"
  588.            "n."
  589.           movedir = "0 0 0"
  590.           speed = "5"
  591.           health = "0"
  592.           lip = "0"
  593.           sounds = "0"
  594.           wait = "3"
  595.           spawnflags = "1024"
  596.           locked_sound = "0"
  597.           unlocked_sound = "0"
  598.           locked_sentence = "0"
  599.           unlocked_sentence = "0"
  600.         }
  601.         func_clip_vphysics:b =
  602.         {
  603.           t_nodrawpoly=!
  604.           ;desc = "A brush entity that's considered solid to vphysics."
  605.         }
  606.         func_conveyor:b =
  607.         {
  608.           t_detailpoly=!
  609.           ;desc = "Conveyor Belt"
  610.           movedir = "0 0 0"
  611.           speed = "100"
  612.         }        
  613.         func_detail:b =
  614.         {
  615.           t_detailpoly=!
  616.           ;desc = "An entity that turns its brushes into detail brushes. Detai"
  617.            "l brushes do NOT contribute to visibility in the PVS. World geomet"
  618.            "ry is not clipped to detail brushes, so if you have a small detail"
  619.            " clump attached to a wall, the wall won't be cut up by the detail "
  620.            "brush.func_detail is great for high-frequency brush geometry that'"
  621.            "s visual detail only. It is also ideal for reducing map VIS time."
  622.         }
  623.         func_door:b =
  624.         {
  625.           t_detailpoly=!
  626.           ;desc = "A brush entity for use as a player-useable door."
  627.           movedir = "0 0 0"
  628.         }
  629.         func_door_rotating:b =
  630.         {
  631.           t_detailpoly=!
  632.           ;desc = "A brush entity for use as a rotating player-useable door."
  633.           distance = "90"
  634.           solidbsp = "0"
  635.         }
  636.         func_dustcloud:b =
  637.         {
  638.           t_triggerpoly=!
  639.           ;desc = "A brush entity that spawns a translucent dust cloud within "
  640.            "its volume."
  641.           Alpha = "30"
  642.           SizeMin = "100"
  643.           SizeMax = "200"
  644.         }
  645.         func_dustmotes:b =
  646.         {
  647.           t_triggerpoly=!
  648.           ;desc = "A brush entity that spawns sparkling dust motes within its "
  649.            "volume."
  650.           SizeMin = "10"
  651.           SizeMax = "20"
  652.           Alpha = "255"
  653.         }
  654.         func_guntarget:b =
  655.         {
  656.           t_detailpoly=!
  657.           ;desc = "This is a moving target that moves along a path of path_tra"
  658.            "cks. It can be shot and killed."
  659.           speed = "100"
  660.           health = "0"
  661.         }
  662.         func_illusionary:b =
  663.         {
  664.           t_detailpoly=!
  665.           ;desc = "Legacy support. Use func_brush instead."
  666.         }
  667.         func_ladderendpoint:e =
  668.         {
  669.           origin = "0 0 0"
  670.           ;desc = "An entity used to specify the endpoints of a ladder. This e"
  671.            "ntity is functional, but has been replaced by the easier-to-use fu"
  672.            "nc_useableladder entity. Left in only for backwards-compatibility!"
  673.            "\n\nTo be valid, a full sized player hull traced between the start"
  674.            " and end points must not be obstructed at level activation time. T"
  675.            "he angle determines in which direction the player leaves the ladde"
  676.            "r if the player presses the +jump button.\n\nNote: This entity is "
  677.            "non-functional in Counter-Strike: Source. In CS:S, use func_ladder"
  678.            " instead."
  679.         }
  680.         func_lod:b =
  681.         {
  682.           t_detailpoly=!
  683.           ;desc = "Brush-built model that fades out over a specified distance."
  684.            " Useful for creating world detail that doesn't need to be drawn fa"
  685.            "r away, for performance reasons."
  686.           DisappearDist = "2000"
  687.           Solid = "0"
  688.         }
  689.         func_movelinear:b =
  690.         {
  691.           t_detailpoly=!
  692.           ;desc = "A brush entity that moves linearly along a given distance, "
  693.            "in a given direction."
  694.           movedir = "0 0 0"
  695.           startposition = "0"
  696.           speed = "100"
  697.           movedistance = "100"
  698.           blockdamage = "0"
  699.         }
  700.         func_occluder:b =
  701.         {
  702.           t_occluderpoly=!
  703.           ;desc = "A occluder brush used to manage dynamic visibility in maps."
  704.            " Occluders are used to dynamically determine what things are behin"
  705.            "d them, to prevent trying to draw them at all."
  706.           StartActive = "1"
  707.         }
  708.         func_physbox:b =
  709.         {
  710.           t_detailpoly=!
  711.           ;desc = "A brush entity that's physically simulated."
  712.           spawnflags = "524288"
  713.           Damagetype = "0"
  714.           massScale = "0"
  715.           damagetoenablemotion = "0"
  716.           forcetoenablemotion = "0"
  717.           health = "0"
  718.           preferredcarryangles = "0 0 0"
  719.           notsolid = "0"
  720.         }
  721.         func_platrot:b =
  722.         {
  723.           t_detailpoly=!
  724.           ;desc = "A brush entity that moves vertically, and can rotate while "
  725.            "doing so."
  726.           spawnflags = "1"
  727.           speed = "50"
  728.           height = "0"
  729.           rotation = "0"
  730.         }
  731.         func_precipitation:b =
  732.         {
  733.           t_triggerpoly=!
  734.           ;desc = "A brush entity that creates rain and snow inside its volume"
  735.            "."
  736.           renderamt = "5"
  737.           rendercolor = "100 100 100"
  738.           preciptype = "0"
  739.         }
  740.         func_rot_button:b =
  741.         {
  742.           t_detailpoly=!
  743.           ;desc = "A brush entity that's designed to be used for a rotating pl"
  744.            "ayer-useable button. When used by the player, it rotates to a pres"
  745.            "sed position."
  746.           speed = "50"
  747.           health = "0"
  748.           sounds = "21"
  749.           wait = "3"
  750.           distance = "90"
  751.         }
  752.         func_rotating:b =
  753.         {
  754.           t_detailpoly=!
  755.           ;desc = "A rotating brush entity."
  756.           maxspeed = "100"
  757.           fanfriction = "20"
  758.           volume = "10"
  759.           spawnflags = "512"
  760.           dmg = "0"
  761.           solidbsp = "0"
  762.         }
  763.         func_smokevolume:b =
  764.         {
  765.           t_triggerpoly=!
  766.           ;desc = "A brush entity that spawns smoke particles within its volum"
  767.            "e."
  768.           Color1 = "255 255 255"
  769.           Color2 = "255 255 255"
  770.           material = "particle/smoke_grenade1"
  771.           ParticleDrawWidth = "120"
  772.           ParticleSpacingDistance = "80"
  773.           DensityRampSpeed = "1"
  774.           RotationSpeed = "10"
  775.           MovementSpeed = "10"
  776.           Density = "1"
  777.         }
  778.         func_tanktrain:b =
  779.         {
  780.           t_detailpoly=!
  781.           ;desc = "A moving train that follows a path of path_track entities, "
  782.            "shoots at the player, and can be killed.\nNOTE: Build your train s"
  783.            "o that the front of the train is facing down the X axis. When it s"
  784.            "pawns it will automatically rotate to face the next path_track on "
  785.            "the path."
  786.           health = "100"
  787.         }
  788.         func_trackautochange:b =
  789.         {
  790.           t_detailpoly=!
  791.           ;desc = "An entity that works as a rotating/moving platform that wil"
  792.            "l carry a train to a new track. It must be larger in X-Y planar ar"
  793.            "ea than the train, since it must contain the train within these di"
  794.            "mensions in order to operate when the train is near it."
  795.         }
  796.         func_trackchange:b =
  797.         {
  798.           t_detailpoly=!
  799.           ;desc = "An entity that works as a rotating/moving platform that wil"
  800.            "l carry a train to a new track. It must be larger in X-Y planar ar"
  801.            "ea than the train, since it must contain the train within these di"
  802.            "mensions in order to operate when the train is near it."
  803.         }
  804.         func_tracktrain:b =
  805.         {
  806.           t_detailpoly=!
  807.           ;desc = "A moving platform that the player can ride. It follows a pa"
  808.            "th of path_track entities.\nNOTE: Build your train so that the fro"
  809.            "nt of the train is facing down the X axis. When it spawns it will "
  810.            "automatically rotate to face the next path_track on the path."
  811.         }
  812.         func_traincontrols:b =
  813.         {
  814.           t_detailpoly=!
  815.           ;desc = "When used by the player, this entity overrides the player's"
  816.            " controls to let them drive a train."
  817.         }
  818.         func_useableladder:e =
  819.         {
  820.           origin = "0 0 0"
  821.           ;desc = "A Half-Life 2 ladder. Handles player auto mount/unmount, as"
  822.            " well as +use to get onto the ladder. \n\nSee also 'info_ladder_di"
  823.            "smount', used to specify ladder auto-dismount points.\n\nNote: Thi"
  824.            "s entity is non-functional in Counter-Strike: Source. Use func_lad"
  825.            "der instead."
  826.           StartDisabled = "0"
  827.           point0 = "0 0 0"
  828.           point1 = "0 0 0"
  829.         }
  830.         func_wall:b =
  831.         {
  832.           t_detailpoly=!
  833.           ;desc = "Legacy support. Use func_brush instead."
  834.         }
  835.         func_wall_toggle:b =
  836.         {
  837.           t_detailpoly=!
  838.           ;desc = "A brush entity that can be toggled on/off. When off, the br"
  839.            "ush will be non-solid and invisible. Does not cast lightmap shadow"
  840.            "s."
  841.         }
  842.         func_water_analog:b =
  843.         {
  844.           t_detailpoly=!
  845.           ;desc = "A water brush entity that moves linearly along a given dist"
  846.            "ance, in a given direction"
  847.           movedir = "0 0 0"
  848.           startposition = "0"
  849.           speed = "100"
  850.           movedistance = "100"
  851.           WaveHeight = "3.0"
  852.         }
  853.       }
  854.  
  855. // game entities
  856.  
  857.       game_* entities.qtxfolder =
  858.       {
  859.         game_end:e =
  860.         {
  861.           origin = "0 0 0"
  862.           ;desc = "An entity that ends a multiplayer game."
  863.         }
  864.         game_player_equip:e =
  865.         {
  866.           origin = "0 0 0"
  867.           ;desc = "An entity that gives equipment to the player who activates "
  868.            "it. To use, add new keys to this entity, where each key is the cla"
  869.            "ssname of a weapon/item, and the corresponding value is the number"
  870.            " of those weapons/items to give to the player who uses this entity"
  871.            ". If the 'Use Only' spawnflag isn't set, then players can just tou"
  872.            "ch this entity to get the equipment."
  873.         }
  874.         game_player_team:e =
  875.         {
  876.           origin = "0 0 0"
  877.           ;desc = "An entity that changes the team of the player who activates"
  878.            " it."
  879.         }
  880.         game_ragdoll_manager:e =
  881.         {
  882.           origin = "0 0 0"
  883.           ;desc = "An entity to control the number of ragdolls in the world, f"
  884.            "or performance reasons."
  885.           MaxRagdollCount = "-1"
  886.         }
  887.         game_score:e =
  888.         {
  889.           origin = "0 0 0"
  890.           ;desc = "An entity that awards/deducts points from the player who ac"
  891.            "tivates it."
  892.           points = "1"
  893.         }
  894.         game_text:e =
  895.         {
  896.           origin = "0 0 0"
  897.           ;desc = "An entity that displays text on player's screens."
  898.           x = "-1"
  899.           y = "-1"
  900.           effect = "0"
  901.           color = "100 100 100"
  902.           color2 = "240 110 0"
  903.           fadein = "1.5"
  904.           fadeout = "0.5"
  905.           holdtime = "1.2"
  906.           fxtime = "0.25"
  907.           channel = "1"
  908.         }
  909.         game_ui:e =
  910.         {
  911.           origin = "0 0 0"
  912.           ;desc = "An entity used to override player input when the player is "
  913.            "looking at it."
  914.           spawnflags = "480"
  915.           FieldOfView = "-1.0"
  916.         }
  917.         game_weapon_manager:e =
  918.         {
  919.           origin = "0 0 0"
  920.           ;desc = "An entity used to limit the number of a particular weapon t"
  921.            "ype in the world. Useful in places where NPCs are spawning rapidly"
  922.            ", dying, and dropping weapons."
  923.           maxpieces = "0"
  924.         }
  925.         game_zone_player:b =
  926.         {
  927.           t_triggerpoly=!
  928.           ;desc = "An entity used to count the number of players within a zone"
  929.            "."
  930.         }
  931.       }
  932.  
  933. // info entities
  934.  
  935.       info_* entities.qtxfolder =
  936.       {
  937.         info_camera_link:e =
  938.         {
  939.           origin = "0 0 0"
  940.           ;desc = "An entity that can use point_cameras to render images for m"
  941.            "aterials used by entities. To author the material, use the special"
  942.            " identifier _rt_Camera for the $baseTexture (or whatever texture y"
  943.            "ou want, like envmap, etc.) in the .vmt then connect the 'target' "
  944.            "field to the entity which uses that material, and the 'PointCamera"
  945.            "' field to the point_camera you want to have appear on that entity"
  946.            "'s material"
  947.         }
  948.         info_constraint_anchor:e =
  949.         {
  950.           origin = "0 0 0"
  951.           ;desc = "An entity used to attach constraints to a local position on"
  952.            " an entity. Usually constraints will attach to the center of mass "
  953.            "of an object. Attach the desired constraint to this entity, and th"
  954.            "en parent this entity to the entity you want the constraint to app"
  955.            "ly to."
  956.           massScale = "1"
  957.         }
  958.         info_hint:e =
  959.         {
  960.           origin = "0 0 0"
  961.           ;desc = "A hint that is not used for navigation. They don't go into "
  962.            "the nodegraph, nor do they fall to the ground. Use these to provid"
  963.            "e some spatial context for NPCs, such as 'look here if you can't f"
  964.            "ind the player' or 'throw rocks at this spot'."
  965.         }
  966.         info_intermission:e =
  967.         {
  968.           origin = "0 0 0"
  969.           ;desc = "An entity that defines an intermission spot where dead play"
  970.            "ers will float until they respawn."
  971.         }
  972.         info_ladder_dismount:e =
  973.         {
  974.           origin = "0 0 0"
  975.           ;desc = "An entity to handle endpoints for multiple ladders that are"
  976.            " too close to each other."
  977.         }
  978.         info_landmark:e =
  979.         {
  980.           origin = "0 0 0"
  981.           ;desc = "An entity that acts as a landmark for transitions to anothe"
  982.            "r level. There should be a corresponding info_landmark entity in t"
  983.            "he next map. Entities will be transitioned to the next level relat"
  984.            "ive to the info_landmark entities."
  985.         }
  986.         info_lighting:e =
  987.         {
  988.           origin = "0 0 0"
  989.           ;desc = "An entity that can be used to change the lighting origin of"
  990.            " a prop_static. Set the prop_static's Lighting Origin to point at "
  991.            "this entity to make the prop_static light as if it was at the info"
  992.            "_lighting's origin. Good for prop_static entities that are embedde"
  993.            "d in world geometry (like rocks/windows/etc)."
  994.         }
  995.         info_mass_center:e =
  996.         {
  997.           origin = "0 0 0"
  998.           ;desc = "An entity that overrides the mass center of the target phys"
  999.            "ics prop, or func_physbox, by moving it to the info_mass_center's "
  1000.            "location."
  1001.         }
  1002.         info_no_dynamic_shadow:e =
  1003.         {
  1004.           origin = "0 0 0"
  1005.           ;desc = "Use this entity to mark surfaces that shouldn't receive dyn"
  1006.            "amic shadows. Useful to apply to walls and floors where shadows ar"
  1007.            "e drawn improperly, giving away the location of enemies."
  1008.         }
  1009.         info_node:e =
  1010.         {
  1011.           origin = "0 0 0"
  1012.           ;desc = "A navigation node for ground moving NPCs. Navigation nodes "
  1013.            "are baked into the nodegraph so that NPCs can move to them. Ground"
  1014.            " nodes fall to the ground when they spawn."
  1015.         }
  1016.         info_node_air:e =
  1017.         {
  1018.           origin = "0 0 0"
  1019.           ;desc = "A navigation node for flying NPCs. Air navigation nodes are"
  1020.            " baked into the nodegraph so that NPCs can move to them. Air nodes"
  1021.            " do not fall to the ground when they spawn."
  1022.           nodeheight = "0"
  1023.         }
  1024.         info_node_air_hint:e =
  1025.         {
  1026.           origin = "0 0 0"
  1027.           ;desc = "A navigation node for flying NPCs that includes some contex"
  1028.            "t information for NPCs that are interested in it. The hint might i"
  1029.            "ndicate a window that could be looked into, or an item of interest"
  1030.            " that could be commented on. Many hint nodes are NPC-specific, so "
  1031.            "it's helpful to use naming conventions like 'Crow: Fly to point' i"
  1032.            "n the hint choices list. The angles of a hint node indicate what d"
  1033.            "irection the NPC should face to perform the hint behavior."
  1034.           nodeheight = "0"
  1035.         }
  1036.         info_node_climb:e =
  1037.         {
  1038.           origin = "0 0 0"
  1039.           ;desc = "A climb-node for AI navigation. Only usable by NPCs that ca"
  1040.            "n climb."
  1041.         }
  1042.         info_node_hint:e =
  1043.         {
  1044.           origin = "0 0 0"
  1045.           ;desc = "A navigation node for ground moving NPCs that includes some"
  1046.            " context information for NPCs that are interested in it. The hint "
  1047.            "might indicate a window that could be looked out of, or an item of"
  1048.            " interest that could be commented on. Many hint nodes are NPC-spec"
  1049.            "ific, so it's helpful to use naming conventions like 'Crow: Fly to"
  1050.            " point' in the hint choices list. The angles of a hint node indica"
  1051.            "te what direction the NPC should face to perform the hint behavior"
  1052.            ".\n\nIt's important to understand the distinction between scripts,"
  1053.            " such as scripted_sequence and scripted_schedule, and info_hint en"
  1054.            "tities. Scripts summon NPCs to specific cue points to play their p"
  1055.            "arts, while hints provide context information to the AI that they "
  1056.            "use to perform their behaviors. Hints require code support in the "
  1057.            "NPC, while scripts are generic and may require only animations to "
  1058.            "play. Use a hint if the behavior is driven by the AI, use a script"
  1059.            " if the behavior is driven by the map."
  1060.         }
  1061.         info_node_link:e =
  1062.         {
  1063.           origin = "0 0 0"
  1064.           ;desc = "A dynamic connection between two navigation nodes. You spec"
  1065.            "ify the node IDs of the start and end nodes, and then you can use "
  1066.            "entity I/O to turn on and off the connection. This could be used t"
  1067.            "o create or destroy a connection in the nodegraph because of some "
  1068.            "event in your map (a bridge being created/destroyed, etc)."
  1069.           initialstate = "1"
  1070.         }        
  1071.         info_node_link_controller:e =
  1072.         {
  1073.           origin = "0 0 0"
  1074.           ;desc = "An entity that controls all connections between nodes that "
  1075.            "intersect the controller's volume. This allows for mass enabling/d"
  1076.            "isabling of all node connections through a volume."
  1077.           mins = "-8 -32 -36"
  1078.           maxs = "8 32 36"
  1079.           initialstate = "1"
  1080.         }        
  1081.         info_npc_spawn_destination:e =
  1082.         {
  1083.           origin = "0 0 0"
  1084.           ;desc = "NPC Spawn Destination. (Consult npc_template_maker help for"
  1085.            " more info)"
  1086.           ReuseDelay = "1"
  1087.         }        
  1088.         info_null:e =
  1089.         {
  1090.           origin = "0 0 0"
  1091.           ;desc = "An entity that's immediately removed on spawning. Useful as"
  1092.            " a spotlight target."
  1093.         }        
  1094.         info_overlay:e =
  1095.         {
  1096.           origin = "0 0 0"
  1097.           ;desc = "An entity that places an overlay on the world."
  1098.           RenderOrder = "0"
  1099.           StartU = "0.0"
  1100.           EndU = "1.0"
  1101.           StartV = "0.0"
  1102.           EndV = "1.0"
  1103.         }        
  1104.         info_player_start:e =
  1105.         {
  1106.           origin = "0 0 0"
  1107.           angles = "0 0 0"
  1108.           ;desc = "This entity indicates the position and facing direction at "
  1109.            "which the player will spawn. Any number of info_player_start entit"
  1110.            "ies may be placed in a map for when working in cordoned-off portio"
  1111.            "ns of the map. When multiple info_player_start entities are presen"
  1112.            "t in a map, set the 'Master' spawnflag on one of them to indicate "
  1113.            "which one should be used when running the entire map."
  1114.         }        
  1115.         info_projecteddecal:e =
  1116.         {
  1117.           origin = "0 0 0"
  1118.           ;desc = "An entity that projects a decal onto the world (or props). "
  1119.            "If the decal has no target name, it will immediately apply itself "
  1120.            "when the level is loaded. If it has a name specified, it won't app"
  1121.            "ly until it receives the 'Activate' input."
  1122.           Distance = "64"
  1123.         }        
  1124.         info_target:e =
  1125.         {
  1126.           origin = "0 0 0"
  1127.           ;desc = "An entity that does nothing. Very useful as a positioning e"
  1128.            "ntity for other entities to refer to (i.e. the endpoint of an env_"
  1129.            "beam)"
  1130.         }        
  1131.         info_teleport_destination:e =
  1132.         {
  1133.           origin = "0 0 0"
  1134.           ;desc = "An entity that does nothing itself, but can be used to spec"
  1135.            "ify the destination for a trigger_teleport entity. An info_target "
  1136.            "can be used instead."
  1137.         }
  1138.       }
  1139.  
  1140. // keyframe entities
  1141.  
  1142.       keyframe_* entities.qtxfolder =
  1143.       {
  1144.         keyframe_rope:e =
  1145.         {
  1146.           origin = "0 0 0"
  1147.           ;desc = "A node entity that marks a point in a rope. The first node "
  1148.            "in the rope should be a move_rope, followed by 1 or more keyframe_"
  1149.            "ropes."
  1150.         }
  1151.         keyframe_track:e =
  1152.         {
  1153.           origin = "0 0 0"
  1154.           ;desc = "Animation KeyFrame"
  1155.         }
  1156.        }
  1157.  
  1158. // light entities
  1159.  
  1160.       light_* entities.qtxfolder =
  1161.       {
  1162.         light:e =
  1163.         {
  1164.           origin = "0 0 0"
  1165.           ;desc = "An invisible omnidirectional lightsource."
  1166.           _distance = "0"
  1167.         }
  1168.         light_dynamic:e =
  1169.         {
  1170.           origin = "0 0 0"
  1171.           angles = "0 0 0"
  1172.           ;desc = "An invisible lightsource that changes in some way over time"
  1173.            "."
  1174.           _light = "255 255 255 200"
  1175.           brightness = "0"
  1176.           _inner_cone = "30"
  1177.           _cone = "45"
  1178.           pitch = "-90"
  1179.           distance = "120"
  1180.           spotlight_radius = "80"
  1181.           style = "0"
  1182.         }
  1183.         light_environment:e =
  1184.         {
  1185.          origin = "0 0 0"
  1186.          angles = "0 0 0"
  1187.           ;desc = "Sets the color and angle of the light from the sun and sky."
  1188.           pitch = "0"
  1189.           _light = "255 201 128 210"
  1190.           _ambient = "103 143 184 50"
  1191.         }
  1192.         light_spot:e =
  1193.         {
  1194.           origin = "0 0 0"
  1195.           angles = "0 0 0"
  1196.           ;desc = "An invisible and directional spotlight."
  1197.           _inner_cone = "30"
  1198.           _cone = "45"
  1199.           _exponent = "1"
  1200.           _distance = "0"
  1201.           pitch = "-90"
  1202.         }
  1203.       }
  1204.  
  1205. // logic entities
  1206.  
  1207.       logic_* entities.qtxfolder =
  1208.       {
  1209.         logic_auto:e =
  1210.         {
  1211.           origin = "0 0 0"
  1212.           ;desc = "Fires outputs when a map spawns. If 'Remove on fire' flag i"
  1213.            "s set the logic_auto is deleted after firing. It can be set to che"
  1214.            "ck a global state before firing. This allows you to only fire even"
  1215.            "ts based on what took place in a previous map."
  1216.           spawnflags = "1"
  1217.         }
  1218.         logic_autosave:e =
  1219.         {
  1220.           origin = "0 0 0"
  1221.           ;desc = "An entity that is used to force an autosave."
  1222.           NewLevelUnit = "0"
  1223.         }
  1224.         logic_branch:e =
  1225.         {
  1226.           origin = "0 0 0"
  1227.           ;desc = "Tests a boolean value and fires an output based on whether "
  1228.            "the value is true or false. Use this entity to branch between two "
  1229.            "potential sets of events."
  1230.         }
  1231.         logic_case:e =
  1232.         {
  1233.           origin = "0 0 0"
  1234.           ;desc = "Compares an input to up to 16 preset values. If the input v"
  1235.            "alue is the same as any of the preset values, an output correspond"
  1236.            "ing to that value is fired.\n\nFor example: if Case01 is set to 2 "
  1237.            "and Case02 is set to 5, and the input value is 5, the OnCase02 out"
  1238.            "put will be fired.\n\nThis entity can also be used to select from "
  1239.            "a number of random targets via the PickRandom input. One of the On"
  1240.            "Case outputs that is connected to another entity will be picked at"
  1241.            " random and fired."
  1242.         }
  1243.         logic_collision_pair:e =
  1244.         {
  1245.           origin = "0 0 0"
  1246.           ;desc = "An entity that can be used to enables/disable vphysics coll"
  1247.            "isions between two target entities."
  1248.           startdisabled = "1"
  1249.         }
  1250.        logic_compare:e =
  1251.         {
  1252.           origin = "0 0 0"
  1253.           ;desc = "Compares an input value to another value. If the input valu"
  1254.            "e is less than the compare value, the OnLessThan output is fired w"
  1255.            "ith the input value. If the input value is equal to the compare va"
  1256.            "lue, the OnEqualTo output is fired with the input value. If the in"
  1257.            "put value is greater than the compare value, the OnGreaterThan out"
  1258.            "put is fired with the input value."
  1259.         }
  1260.         logic_lineto:e =
  1261.         {
  1262.           origin = "0 0 0"
  1263.           ;desc = "An entity that calculates and outputs a vector from one ent"
  1264.            "ity to another."
  1265.         }
  1266.         logic_measure_movement:e =
  1267.         {
  1268.           origin = "0 0 0"
  1269.           ;desc = "An entity that can measure the movement of an entity relati"
  1270.            "ve to another entity and apply that movement to a third entity."
  1271.           TargetScale = "1"
  1272.           MeasureType = "0"
  1273.         }        
  1274.         logic_multicompare:e =
  1275.         {
  1276.           origin = "0 0 0"
  1277.           ;desc = "Compares a set of inputs to each other. If they are all the"
  1278.            " same, fires an OnEqual output. If any are different, fires the On"
  1279.            "NotEqual output."
  1280.           ShouldComparetoValue = "0"
  1281.         }        
  1282.         logic_navigation:e =
  1283.         {
  1284.           origin = "0 0 0"
  1285.           ;desc = "An entity that is used to set navigation properties on othe"
  1286.            "r entities. Useful to make NPCs ignore physics props in their way "
  1287.            "that they can easily push."
  1288.           target = "Name of the entity to set navigation properties on."
  1289.           spawnflags = "1"
  1290.           navprop = "Ignore"
  1291.         }        
  1292.         logic_relay:e =
  1293.         {
  1294.           origin = "0 0 0"
  1295.           ;desc = "A message forwarder. Fires an OnTrigger output when trigger"
  1296.            "ed, and can be disabled to prevent forwarding outputs.\n\nUseful a"
  1297.            "s an intermediary between one entity and another for turning on or"
  1298.            " off an I/O connection, or as a container for holding a set of out"
  1299.            "puts that can be triggered from multiple places."
  1300.         }
  1301.         logic_timer:e =
  1302.         {
  1303.           origin = "0 0 0"
  1304.           ;desc = "An entity that fires a timer event at regular, or random, i"
  1305.            "ntervals. It can also be set to oscillate betweena high and low en"
  1306.            "d, in which case it will fire alternating high/low outputs each ti"
  1307.            "me it fires."
  1308.           UseRandomTime = "0"
  1309.         }
  1310.       }
  1311.  
  1312. // math entities
  1313.  
  1314.       math_* entities.qtxfolder =
  1315.       {
  1316.         math_colorblend:e =
  1317.         {
  1318.           origin = "0 0 0"
  1319.           ;desc = "Used to create a blend between two colors for controlling t"
  1320.            "he color of another entity."
  1321.           spawnflags = "1"
  1322.           inmin = "0"
  1323.           inmax = "1"
  1324.           colormin = "0 0 0"
  1325.           colormax = "255 255 255"
  1326.         }
  1327.         math_counter:e =
  1328.         {
  1329.           origin = "0 0 0"
  1330.           ;desc = "Holds a numeric value and performs arithmetic operations up"
  1331.            "on it. If either the minimum or maximum legal value is nonzero, Ou"
  1332.            "tValue will be clamped to the legal range, and the OnHitMin/OnHitM"
  1333.            "ax outputs will be fired at the appropriate times. If both min and"
  1334.            " max are set to zero, no clamping is performed and only the OutVal"
  1335.            "ue output will be fired."
  1336.           startvalue = "0"
  1337.           min = "0"
  1338.           max = "0"
  1339.         }
  1340.         math_remap:e =
  1341.         {
  1342.           origin = "0 0 0"
  1343.           ;desc = "An entity that remaps a range of input values to a given ra"
  1344.            "nge of output values."
  1345.           spawnflags = "1"
  1346.           in1 = "0"
  1347.           in2 = "1"
  1348.         }
  1349.       }
  1350.  
  1351. // move entities
  1352.  
  1353.       move_* entities.qtxfolder =
  1354.       {
  1355.         move_keyframed:e =
  1356.         {
  1357.           origin = "0 0 0"
  1358.           ;desc = "Keyframed Move Behavior"
  1359.         }
  1360.         move_rope:e =
  1361.         {
  1362.           origin = "0 0 0"
  1363.           ;desc = "The first node in set of nodes that are used to place ropes"
  1364.            " in the world. It should connect to 1 or more keyframe_rope entiti"
  1365.            "es."
  1366.           PositionInterpolator = "2"
  1367.         }
  1368.         move_track:e =
  1369.         {
  1370.           origin = "0 0 0"
  1371.           ;desc = "Track Move Behavior"
  1372.           WheelBaseLength = "50"
  1373.           Damage = "0"
  1374.           NoRotate = "0"
  1375.         }
  1376.       }
  1377.  
  1378. // npc entities
  1379.  
  1380.       npc_* entities.qtxfolder =
  1381.       {
  1382.         npc_furniture:e =
  1383.         {
  1384.           origin = "0 0 0"
  1385.           ;desc = "An entity used for non-NPCs that need to synchronise their "
  1386.            "animation with an NPC in a scripted_sequence. Usually a pieceof fu"
  1387.            "rniture or door that an NPC needs to manipulate within a scripted_"
  1388.            "sequence."
  1389.         }
  1390.         npc_template_maker:e =
  1391.         {
  1392.           origin = "0 0 0"
  1393.           ;desc = "An entity that creates NPCs. The NPCs it creates are clones"
  1394.            " of a template NPC. NPCs are spawned around this maker's origin, o"
  1395.            "r at specified destination points."
  1396.           Radius = "256"
  1397.           CriterionVisibility = "2"
  1398.           CriterionDistance = "2"
  1399.         }
  1400.       }
  1401.  
  1402. // other entities
  1403.  
  1404.       other entities.qtxfolder =
  1405.       {
  1406.         ai_speechfilter:e =
  1407.         {
  1408.           origin = "0 0 0"
  1409.           ;desc = "An entity that can be used to control the idle speech patte"
  1410.            "rns of a set of NPCs."
  1411.           IdleModifier = "1.0"
  1412.           NeverSayHello = "0"
  1413.         }
  1414.         ambient_generic:e =
  1415.         {
  1416.           origin = "0 0 0"
  1417.           ;desc = "Universal ambient sound. Use it to play and control a singl"
  1418.            "e sound."
  1419.           health = "10"
  1420.           preset = "0"
  1421.           volstart = "0"
  1422.           fadein = "0"
  1423.           fadeout = "0"
  1424.           pitch = "100"
  1425.           pitchstart = "100"
  1426.           spinup = "0"
  1427.           spindown = "0"
  1428.           lfotype = "0"
  1429.           lforate = "0"
  1430.           lfomodpitch = "0"
  1431.           lfomodvol = "0"
  1432.           cspinup = "0"
  1433.           radius = "1250"
  1434.           spawnflags = "48"
  1435.         }
  1436.         cycler:e =
  1437.         {
  1438.           origin = "0 0 0"
  1439.           ;desc = "An entity used to display a model for testing purposes. Sho"
  1440.            "oting it with cycle through the model's animations."
  1441.           skin = "0"
  1442.           sequence = "0"
  1443.         }
  1444.         gibshooter:e =
  1445.         {
  1446.           origin = "0 0 0"
  1447.           ;desc = "An entity that shoots out gibs. Style of body part depends "
  1448.            "on language type."
  1449.         }        
  1450.         infodecal:e =
  1451.         {
  1452.           origin = "0 0 0"
  1453.           ;desc = "An entity that places a decal on the world. If the decal ha"
  1454.            "s no target name, it will immediately apply itself when the level "
  1455.            "is loaded. If it has a name specified, it won't apply until it rec"
  1456.            "eives the 'Activate' input."
  1457.           LowPriority = "0"
  1458.         }        
  1459.         material_modify_control:e =
  1460.         {
  1461.           origin = "0 0 0"
  1462.           ;desc = "An entity that can be used to directly control material var"
  1463.            "s. To use it, you need to read the .vmt of the material you intend"
  1464.            " to change. Parent this entity to a brush model entity who's mater"
  1465.            "ial you want to control."
  1466.         }        
  1467.         momentary_rot_button:b =
  1468.         {
  1469.           t_detailpoly=!
  1470.           ;desc = "A brush entity that's designed to be used for rotating whee"
  1471.            "ls, where the player can rotate them to arbitrary positions before"
  1472.            " stopping."
  1473.           speed = "50"
  1474.           sounds = "0"
  1475.           distance = "90"
  1476.           returnspeed = "0"
  1477.           spawnflags = "1057"
  1478.           startposition = "0"
  1479.           startdirection = "Forward"
  1480.           solidbsp = "0"
  1481.         }        
  1482.         path_track:e =
  1483.         {
  1484.           origin = "0 0 0"
  1485.           ;desc = "An entity used to build paths for other entities to follow."
  1486.            " Each path_track is a node on the path, each holding the name of t"
  1487.            "he next path_track in the path."
  1488.           speed = "0"
  1489.           radius = "0"
  1490.           orientationtype = "1"
  1491.         }        
  1492.         physics_cannister:e =
  1493.         {
  1494.           origin = "0 0 0"
  1495.           ;desc = "A physically simulated gas cannister that can have its cap "
  1496.            "shot off, at which point gas will start escaping and cause the can"
  1497.            "nister to fly around. If it takes enough damage, it will explode."
  1498.           model = "models/fire_equipment/w_weldtank.mdl"
  1499.           spawnflags = "2"
  1500.           expdamage = "200.0"
  1501.           expradius = "250.0"
  1502.           health = "25"
  1503.           thrust = "3000.0"
  1504.           fuel = "12.0"
  1505.           rendercolor = "255 255 255"
  1506.           renderamt = "128"
  1507.           gassound = "ambient/objects/cannister_loop.wav"
  1508.         }        
  1509.         shadow_control:e =
  1510.         {
  1511.           origin = "0 0 0"
  1512.           ;desc = "An entity to control the shadows in the map."
  1513.           angles = "80 30 0"
  1514.           color = "128 128 128"
  1515.           distance = "75"
  1516.         }        
  1517.         sky_camera:e =
  1518.         {
  1519.           origin = "0 0 0"
  1520.           ;desc = "An entity used to control the 3D Skybox. Its origin is used"
  1521.            " to determine the 3D Skybox's position relative to the map. Place "
  1522.            "this entity, in the 3D Skybox, at the point where the origin of th"
  1523.            "e map should be."
  1524.           scale = "16"
  1525.           fogenable = "0"
  1526.           fogblend = "0"
  1527.           use_angles = "0"
  1528.           fogcolor = "255 255 255"
  1529.           fogcolor2 = "255 255 255"
  1530.           fogdir = "1 0 0"
  1531.           fogstart = "500.0"
  1532.           fogend = "2000.0"
  1533.         }        
  1534.         tanktrain_ai:e =
  1535.         {
  1536.           origin = "0 0 0"
  1537.           ;desc = "Train chase AI"
  1538.           startsound = "vehicles/diesel_start1.wav"
  1539.           enginesound = "vehicles/diesel_turbo_loop1.wav"
  1540.           movementsound = "vehicles/tank_treads_loop1.wav"
  1541.         }        
  1542.         tanktrain_aitarget:e =
  1543.         {
  1544.           origin = "0 0 0"
  1545.           ;desc = "An entity that changes the target of a tanktrain_ai entity."
  1546.         }        
  1547.         test_traceline:e =
  1548.         {
  1549.           origin = "0 0 0"
  1550.           ;desc = "A debugging tool for testing tracelines."
  1551.         }        
  1552.         vgui_screen:e =
  1553.         {
  1554.           origin = "0 0 0"
  1555.           ;desc = "A VGUI screen. Useful for in-world monitors."
  1556.         }        
  1557.         water_lod_control:e =
  1558.         {
  1559.           origin = "0 0 0"
  1560.           ;desc = "An entity used to control the LOD behavior of any water in "
  1561.            "the map. If your map has water, this entity is required."
  1562.           cheapwaterstartdistance = "1000"
  1563.           cheapwaterenddistance = "2000"
  1564.         }        
  1565.         worldspawn:b =
  1566.         {
  1567.           ;desc = "This is the world entity. Each map can only contain one, an"
  1568.            "d it's automatically created for you."
  1569.         }
  1570.       }
  1571.  
  1572. // phys entities
  1573.  
  1574.       phys_* entities.qtxfolder =
  1575.       {
  1576.         phys_ballsocket:e =
  1577.         {
  1578.           origin = "0 0 0"
  1579.           ;desc = "A constraint that keeps the position of two objects fixed, "
  1580.            "relative to the constraint's origin. It does not affect rotation."
  1581.         }
  1582.         phys_constraint:e =
  1583.         {
  1584.           origin = "0 0 0"
  1585.           ;desc = "A constraint that keeps the relative position and orientati"
  1586.            "on of two objects fixed."
  1587.           spawnflags = "1"
  1588.         }
  1589.         phys_constraintsystem:e =
  1590.         {
  1591.           origin = "0 0 0"
  1592.           ;desc = "An entity used to manage a group of interacting constraints"
  1593.            " and keep them stable. All constraints on a set of entities should"
  1594.            " be placed in the same system, or they will fight each other durin"
  1595.            "g simulation."
  1596.           additionaliterations = "0"
  1597.         }
  1598.         phys_convert:e =
  1599.         {
  1600.           origin = "0 0 0"
  1601.           ;desc = "Turns an arbitrary entity into a physically simulated entit"
  1602.            "y. i.e. brush entities will behave like func_physbox, model entiti"
  1603.            "es behave like prop_physics."
  1604.         }
  1605.         phys_hinge:e =
  1606.         {
  1607.           origin = "0 0 0"
  1608.           ;desc = "A physically simulated hinge. Use the helper to define the "
  1609.            "axis of rotation."
  1610.           hingefriction = "0"
  1611.           SystemLoadScale = "1"
  1612.         }
  1613.         phys_keepupright:e =
  1614.         {
  1615.           origin = "0 0 0"
  1616.           ;desc = "A controller that tries to keep an entity facing a particul"
  1617.            "ar direction."
  1618.           angularlimit = "15"
  1619.         }
  1620.         phys_lengthconstraint:e =
  1621.         {
  1622.           origin = "0 0 0"
  1623.           ;desc = "A constraint that preserves the distance between two entiti"
  1624.            "es. If the 'Keep Rigid' flag is set, think of it as a rod. If not,"
  1625.            " think off it as a virtual rope."
  1626.           addlength = "0"
  1627.           minlength = "0"
  1628.           attachpoint = "The position the rope attaches to object 2"
  1629.           spawnflags = "1"
  1630.         }
  1631.         phys_magnet:e =
  1632.         {
  1633.           origin = "0 0 0"
  1634.           ;desc = "An entity that acts like a magnet, attaching metallic physi"
  1635.            "cs objects to itself when they touch it."
  1636.           forcelimit = "0"
  1637.           torquelimit = "0"
  1638.           massScale = "0"
  1639.           maxobjects = "0"
  1640.         }        
  1641.         phys_motor:e =
  1642.         {
  1643.           origin = "0 0 0"
  1644.           ;desc = "An entity that tries to spin a target entity at a particula"
  1645.            "r speed."
  1646.           speed = "0"
  1647.           spinup = "1"
  1648.           inertiafactor = "1.0"
  1649.           spawnflags = "5"
  1650.         }        
  1651.         phys_pulleyconstraint:e =
  1652.         {
  1653.           origin = "0 0 0"
  1654.           ;desc = "A constraint that is essentially two length constraints and"
  1655.            " two points. Imagine it as a virtual rope connected to two objects"
  1656.            ", each suspended from a pulley above them.The constraint keeps the"
  1657.            " sum of the distances between the pulley points and their suspende"
  1658.            "d objects constant."
  1659.           addlength = "0"
  1660.           gearratio = "1"
  1661.           spawnflags = "1"
  1662.         }        
  1663.         phys_ragdollconstraint:e =
  1664.         {
  1665.           origin = "0 0 0"
  1666.           ;desc = "A constraint that fixes the position of two entities, relat"
  1667.            "ive to this constraint's origin. Also allows for limits on the rot"
  1668.            "ation around each axis, in the space of this constraint."
  1669.           spawnflags = "1"
  1670.           xmin = "-90"
  1671.           xmax = "90"
  1672.           ymin = "0"
  1673.           ymax = "0"
  1674.           zmin = "0"
  1675.           zmax = "0"
  1676.           xfriction = "0"
  1677.           yfriction = "0"
  1678.           zfriction = "0"
  1679.         }        
  1680.         phys_ragdollmagnet:e =
  1681.         {
  1682.           origin = "0 0 0"
  1683.           ;desc = "An entity that acts like a magnet for ragdolls. Useful for "
  1684.            "crafting exaggerated ragdoll behavior (i.e. guys falling over rail"
  1685.            "s on death). If the Bar Magnet spawnflag is set, the magnet works "
  1686.            "like it was a cylindrical magnet i.e. it attracts ragdolls to the "
  1687.            "nearest point on a line."
  1688.           radius = "512"
  1689.           force = "5000"
  1690.         }       
  1691.         phys_slideconstraint:e =
  1692.         {
  1693.           origin = "0 0 0"
  1694.           ;desc = "A constraint that constrains an entity along a line segment"
  1695.            "."
  1696.           spawnflags = "1"
  1697.           slidefriction = "0"
  1698.           SystemLoadScale = "1"
  1699.         }
  1700.         phys_spring:e =
  1701.         {
  1702.           origin = "0 0 0"
  1703.           ;desc = "A physically simulated spring. 'Length' is what's known as "
  1704.            "the 'natural spring length'. This is how long the spring would be "
  1705.            "if it was at rest (nothing hanging on it or attached). When you at"
  1706.            "tach something to the spring, it will stretch longer than its 'nat"
  1707.            "ural length'. The amount of stretch is determined by the 'Sprint C"
  1708.            "onstant'. The larger the spring constant the less stretch the spri"
  1709.            "ng."
  1710.           length = "0"
  1711.           constant = "50"
  1712.           damping = "2.0"
  1713.           relativedamping = "0.1"
  1714.           breaklength = "0"
  1715.         }       
  1716.         phys_thruster:e =
  1717.         {
  1718.           origin = "0 0 0"
  1719.           ;desc = "An entity used to apply constant acceleration to a physics "
  1720.            "object. The force and torque is calculated using the position and "
  1721.            "direction of the thruster as an impulse. So moving those off the o"
  1722.            "bject's center will cause torque as well. Torque can be removed by"
  1723.            " unchecking the 'apply torque' flag. The position of the thruster "
  1724.            "can be forced to be at the object's center by checking to 'ignore "
  1725.            "pos' flag."
  1726.           force = "0"
  1727.         }
  1728.         phys_torque:e =
  1729.         {
  1730.           origin = "0 0 0"
  1731.           ;desc = "An angular thruster. Use it to apply angular force to an en"
  1732.            "tity."
  1733.           force = "0"
  1734.         }
  1735.       }
  1736.  
  1737. // point entities
  1738.  
  1739.       point_* entities.qtxfolder =
  1740.       {
  1741.         point_anglesensor:e =
  1742.         {
  1743.           origin = "0 0 0"
  1744.           ;desc = "An entity that detects if another entity points in a given "
  1745.            "direction for a period of time."
  1746.         }
  1747.         point_angularvelocitysensor:e =
  1748.         {
  1749.           origin = "0 0 0"
  1750.           ;desc = "An entity that detects if another entity's angular velocity"
  1751.            " meets or exceeds a threshold value."
  1752.           threshold = "0"
  1753.         }
  1754.         point_clientcommand:e =
  1755.         {
  1756.           origin = "0 0 0"
  1757.           ;desc = "An entity that issues commands to the client console, as if"
  1758.            " it was typed in by the player (if activator is a player, or the l"
  1759.            "ocal player in single player)."
  1760.         }
  1761.         point_devshot_camera:e =
  1762.         {
  1763.           origin = "0 0 0"
  1764.           ;desc = "An entity used by the -makedevshots system, which automatic"
  1765.            "ally takes screenshots at the position of every devshot camera in "
  1766.            "the level."
  1767.           FOV = "75"
  1768.         }
  1769.         point_enable_motion_fixup:e =
  1770.         {
  1771.           origin = "0 0 0"
  1772.           ;desc = "An entity used to move a motion-disabled prop when it enabl"
  1773.            "es motion. Parent this entity to the prop, and when the prop has i"
  1774.            "ts motion enabled, it will immediately teleport to the origin of t"
  1775.            "his entity."
  1776.         }
  1777.         point_hurt:e =
  1778.         {
  1779.           origin = "0 0 0"
  1780.           ;desc = "An entity that does damage to all entities in a radius arou"
  1781.            "nd itself, with a specified delay.If 'Target Entity' is specified,"
  1782.            " the damage is only done to that entity."
  1783.           DamageRadius = "256"
  1784.           Damage = "5"
  1785.           DamageDelay = "1"
  1786.           DamageType = "0"
  1787.         }
  1788.         point_message:e =
  1789.         {
  1790.           origin = "0 0 0"
  1791.           ;desc = "An entity that displays a text message in the world, at its"
  1792.            " origin."
  1793.           radius = "128"
  1794.           developeronly = "0"
  1795.         }
  1796.         point_playermoveconstraint:e =
  1797.         {
  1798.           origin = "0 0 0"
  1799.           ;desc = "An entity that constrains players to a radius around itself"
  1800.            ", slowing them down the closer they get to the edge of the radius."
  1801.           radius = "256"
  1802.           width = "75.0"
  1803.           speedfactor = "0.15"
  1804.         }
  1805.         point_servercommand:e =
  1806.         {
  1807.           origin = "0 0 0"
  1808.           ;desc = "An entity that issues commands to the server console."
  1809.         }
  1810.         point_spotlight:e =
  1811.         {
  1812.           origin = "0 0 0"
  1813.           angles = "0 0 0"
  1814.           ;desc = "An entity to draw a spotlight. Will draw a beam when the pl"
  1815.            "ayer views it side on, and a halo when it's facing towards the pla"
  1816.            "yer. Unless the 'No Dynamic Light' spawnflag is checked, it will a"
  1817.            "lso create a dynamic light wherever the end of the spotlight rests"
  1818.            "."
  1819.           spawnflags = "3"
  1820.           spotlightlength = "500"
  1821.           spotlightwidth = "50"
  1822.           rendercolor = "255 255 255"
  1823.         }
  1824.         point_teleport:e =
  1825.         {
  1826.           origin = "0 0 0"
  1827.           ;desc = "An entity that teleports a target entity to this position a"
  1828.            "nd angles. If 'Teleport Home' spawn flag is set, teleports the tar"
  1829.            "get entity to its spawn position instead.If object is physically s"
  1830.            "imulated, simulation is turned off when teleported."
  1831.         }
  1832.         point_template:e =
  1833.         {
  1834.           origin = "0 0 0"
  1835.           ;desc = "Turns an entity, or set of entities, into a single template"
  1836.            " that can be instanced anywhere, and multiple times. If there are "
  1837.            "interdependencies (entity I/O, hierarchy, or other name references"
  1838.            ") between the entities in the template, the entities in the templa"
  1839.            "te will have their names changed and the interdependencies will be"
  1840.            " reconnected to the changes names. The name change format is as fo"
  1841.            "llows: '<original name>&0000', where the 0000 will be replaced wit"
  1842.            "h the current global template instance, so wildcard searches for '"
  1843.            "<original name>*' will still find them.\nIf you don't want the nam"
  1844.            "e fixup to happen, because you're only spawning the template once,"
  1845.            " or you want inputs to trigger all instances of the template, chec"
  1846.            "k the 'Preserve entity names' spawnflag. \nTo spawn the template i"
  1847.            "n other places, use an env_entity_maker."
  1848.           spawnflags = "2"
  1849.         }
  1850.         point_tesla:e =
  1851.         {
  1852.           origin = "0 0 0"
  1853.           ;desc = "An entity that creates tesla lightning arcs around its orig"
  1854.            "in."
  1855.           m_SoundName = "DoSpark"
  1856.           texture = "sprites/physbeam.vmt"
  1857.           m_Color = "255 255 255"
  1858.           m_flRadius = "200"
  1859.           beamcount_min = "6"
  1860.           beamcount_max = "8"
  1861.           thick_min = "4"
  1862.           thick_max = "5"
  1863.           lifetime_min = "0.3"
  1864.           lifetime_max = "0.3"
  1865.           interval_min = "0.5"
  1866.           interval_max = "2"
  1867.         }
  1868.         point_viewcontrol:e =
  1869.         {
  1870.           origin = "0 0 0"
  1871.           ;desc = "A camera entity that controls the player's view. While it's"
  1872.            " active, the player will see out of the camera."
  1873.           wait = "10"
  1874.           spawnflags = "3"
  1875.           speed = "0"
  1876.           acceleration = "500"
  1877.           deceleration = "500"
  1878.         }
  1879.       }
  1880.  
  1881. // prop entities
  1882.  
  1883.       prop_* entities.qtxfolder =
  1884.       {
  1885.         prop_detail:e =
  1886.         {
  1887.           origin = "0 0 0"
  1888.           ;desc = "Detail Prop"
  1889.         }
  1890.         prop_door_rotating:e =
  1891.         {
  1892.           origin = "0 0 0"
  1893.           ;desc = "An entity used to place a door in the world."
  1894.           hardware = "1"
  1895.           ajarangles = "0 0 0"
  1896.           spawnpos = "0"
  1897.           distance = "90"
  1898.           speed = "100"
  1899.           returndelay = "-1"
  1900.           dmg = "0"
  1901.           health = "0"
  1902.           forceclosed = "0"
  1903.           spawnflags = "8192"
  1904.         }
  1905.         prop_dynamic:e =
  1906.         {
  1907.           origin = "0 0 0"
  1908.           angles = "0 0 0"
  1909.                     fademindist = "-1"
  1910.                     fadescale = "1"
  1911.           ;desc = "A prop that can be placed in hierarchy and can play animati"
  1912.            "ons. It can also be configured to break when it takes enough damag"
  1913.            "e. Note that the health of the object will be overridden by the he"
  1914.            "alth inside the model, to ensure consistent health game-wide. If t"
  1915.            "he model used by the prop is configured to be used as a prop_physi"
  1916.            "cs (i.e. it should be physically simulated) then it CANNOT be used"
  1917.            " as a prop_dynamic. Upon level load it will display a warning in t"
  1918.            "he console and remove itself. Use a prop_physics instead."
  1919.         }
  1920.         prop_dynamic_ornament:e =
  1921.         {
  1922.           origin = "0 0 0"
  1923.           ;desc = "A way to attach one studio model to another as an ornament."
  1924.            " It will render in the way that player/NPC weapons render."
  1925.           solid = "0"
  1926.         }
  1927.         prop_dynamic_override:e =
  1928.         {
  1929.           origin = "0 0 0"
  1930.           angles = "0 0 0"
  1931.                     fademindist = "-1"
  1932.                     fadescale = "1"
  1933.           ;desc = "A prop that can be placed in hierarchy and can play animati"
  1934.            "ons. It can also be configured to break when it takes enough damag"
  1935.            "e.\nprop_dynamic_override is a prototyping entity only. It will al"
  1936.            "low the use of models designed to be used as prop_physics."
  1937.           health = "0"
  1938.         }
  1939.         prop_physics:e =
  1940.         {
  1941.           origin = "0 0 0"
  1942.           angles = "0 0 0"
  1943.                     fademindist = "-1"
  1944.                     fadescale = "1"
  1945.           ;desc = "A prop that physically simulates as a single rigid body. It"
  1946.            " can be constrained to other physics objects using hinges or other"
  1947.            " constraints. It can also be configured to break when it takes eno"
  1948.            "ugh damage. Note that the health of the object will be overridden "
  1949.            "by the health inside the model, to ensure consistent health game-w"
  1950.            "ide. If the model used by the prop is configured to be used as a p"
  1951.            "rop_dynamic (i.e. it should not be physically simulated) then it C"
  1952.            "ANNOT be used as a prop_physics. Upon level load it will display a"
  1953.            " warning in the console and remove itself. Use a prop_dynamic inst"
  1954.            "ead."
  1955.         }
  1956.         prop_physics_multiplayer:e =
  1957.         {
  1958.           origin = "0 0 0"
  1959.           angles = "0 0 0"
  1960.                     fademindist = "-1"
  1961.                     fadescale = "1"
  1962.           ;desc = "This class is the same as prop_physics, except the runtime "
  1963.            "collisions use a more bouncy method that avoids the prediction err"
  1964.            "ors normal physics objects get."
  1965.         }
  1966.         prop_physics_override:e =
  1967.         {
  1968.           origin = "0 0 0"
  1969.           angles = "0 0 0"
  1970.                     fademindist = "-1"
  1971.                     fadescale = "1"
  1972.           ;desc = "A prop that physically simulates as a single rigid body. It"
  1973.            " can be constrained to other physics objects using hinges or other"
  1974.            " constraints. It can also be configured to break when it takes eno"
  1975.            "ugh damage. Health can be overridden on this version."
  1976.           health = "0"
  1977.         }
  1978.         prop_ragdoll:e =
  1979.         {
  1980.           origin = "0 0 0"
  1981.           ;desc = "A prop that physically simulates and can be articulated wit"
  1982.            "h internal joints. The joint constraints are part of the physics m"
  1983.            "odel."
  1984.           spawnflags = "4"
  1985.           fademindist = "-1"
  1986.           fademaxdist = "0"
  1987.           fadescale = "1"
  1988.         }
  1989.         prop_static:e =
  1990.         {
  1991.           origin = "0 0 0"
  1992.           angles = "0 0 0"
  1993.                     fademindist = "-1"
  1994.                     fadescale = "1"
  1995.           ;desc = "A prop that doesn't move and doesn't animate."
  1996.         }
  1997.       }
  1998.  
  1999. // trigger entities
  2000.  
  2001.       trigger_* entities.qtxfolder =
  2002.       {
  2003.         trigger_autosave:b =
  2004.         {
  2005.           t_triggerpoly=!
  2006.           ;desc = "A trigger volume that autosaves when the player touches it."
  2007.           NewLevelUnit = "0"
  2008.         }
  2009.         trigger_changelevel:b =
  2010.         {
  2011.           t_triggerpoly=!
  2012.           ;desc = "An entity that triggers a level change.\nPlace an info_land"
  2013.            "mark in both maps that marks the 'same' location in each map.\nTIP"
  2014.            "S & TRICKS: To fire events in the next level, use the OnLevelChang"
  2015.            "e output to turn on an env_global in the current level.  Create an"
  2016.            " logic_auto in the next level that checks for the state set by the"
  2017.            " env_global.\n\nTo control which entities go through the level tra"
  2018.            "nsition, create one or more trigger_transitions and give them the "
  2019.            "same name as the landmark. Any entities within the trigger_transit"
  2020.            "ion(s) will go to the next map."
  2021.         }
  2022.         trigger_gravity:b =
  2023.         {
  2024.           t_triggerpoly=!
  2025.           ;desc = "A trigger volume that changes the gravity on any entity tha"
  2026.            "t touches it."
  2027.           gravity = "1"
  2028.         }
  2029.         trigger_hurt:b =
  2030.         {
  2031.           t_triggerpoly=!
  2032.           ;desc = "A trigger volume that damages entities that touch it."
  2033.           damage = "10"
  2034.           damagecap = "20"
  2035.           damagetype = "0"
  2036.           damagemodel = "0"
  2037.         }
  2038.         trigger_impact:b =
  2039.         {
  2040.           t_triggerpoly=!
  2041.           ;desc = "A trigger volume that can be told to push all physics objec"
  2042.            "ts that are inside of it in the direction specified by this trigge"
  2043.            "r's angles.\nAlso outputs the force at the time of impact for anyo"
  2044.            "ne else that wants to use it."
  2045.           Magnitude = "200"
  2046.           noise = "0.1"
  2047.           viewkick = "0.05"
  2048.         }
  2049.         trigger_look:b =
  2050.         {
  2051.           t_triggerpoly=!
  2052.           ;desc = "An entity used to trigger something when the player looks a"
  2053.            "t something. It fires 'OnTrigger' when the player looks at a targe"
  2054.            "t entity for the given amount of time, while within the trigger vo"
  2055.            "lume. If the player leaves the trigger or looks away from the targ"
  2056.            "et entity the clock resets. If the 'Use Velocity instead of facing"
  2057.            "' spawnflag is checked, the trigger uses the player's velocity ins"
  2058.            "tead of the player's view, so it determines whenever the player is"
  2059.            " moving toward the target entity. Useful for triggering when playe"
  2060.            "rs are driving a vehicle at something.NOTE: Only designed for sing"
  2061.            "le-player game. "
  2062.           spawnflags = "128"
  2063.           LookTime = "0.5"
  2064.           FieldOfView = "0.9"
  2065.           Timeout = "0"
  2066.         }
  2067.         trigger_multiple:b =
  2068.         {
  2069.           t_triggerpoly=!
  2070.           ;desc = "A trigger volume that can be triggered multiple times."
  2071.           wait = "1"
  2072.         }
  2073.         trigger_once:b =
  2074.         {
  2075.           t_triggerpoly=!
  2076.           ;desc = "A trigger volume that removes itself after it is triggered "
  2077.            "once."
  2078.         }
  2079.         trigger_playermovement:b =
  2080.         {
  2081.           t_triggerpoly=!
  2082.           ;desc = "An entity that can be used to disable player's automatic du"
  2083.            "cking/unducking when jumping."
  2084.           spawnflags = "128"
  2085.         }
  2086.         trigger_proximity:b =
  2087.         {
  2088.           t_triggerpoly=!
  2089.           ;desc = "Measures the distance of the player within the trigger volu"
  2090.            "me from a given point (and within a given radius). The NearestPlay"
  2091.            "erDistance output will be 0 when the player is at the center point"
  2092.            ", and 1 when the player is at the radius."
  2093.           radius = "256"
  2094.         }
  2095.         trigger_push:b =
  2096.         {
  2097.           t_triggerpoly=!
  2098.           ;desc = "A trigger volume that pushes entities that touch it."
  2099.           pushdir = "0 0 0"
  2100.           speed = "40"
  2101.         }
  2102.         trigger_remove:b =
  2103.         {
  2104.           t_triggerpoly=!
  2105.           ;desc = "A trigger volume that removes any entities that touch it. B"
  2106.            "e careful, removing some entities can cause instability. This is n"
  2107.            "ot the same as killing entities. i.e. NPCs removed in this manner "
  2108.            "will not fire their OnKilled outputs."
  2109.         }
  2110.         trigger_soundscape:b =
  2111.         {
  2112.           t_triggerpoly=!
  2113.           ;desc = "Soundscape trigger. It is not necessary to create outputs f"
  2114.            "or this trigger. It automatically will trigger the soundscape refe"
  2115.            "rred to by its 'Soundscape' property."
  2116.         }
  2117.         trigger_teleport:b =
  2118.         {
  2119.           t_triggerpoly=!
  2120.           ;desc = "A trigger volume that teleports entities that touch it. Ent"
  2121.            "ities are teleported to the Remote Destination, and have their ang"
  2122.            "les set to that of the Remote Destination's. If a Local Destinatio"
  2123.            "n Landmark is specified, teleported entities are offset from the t"
  2124.            "arget by their initial offset from the landmark, and their angles "
  2125.            "are left alone."
  2126.         }
  2127.         trigger_transition:b =
  2128.         {
  2129.           t_triggerpoly=!
  2130.           ;desc = "A volume that's used to control which entities go through t"
  2131.            "he level transition. Create one or more trigger_transitions and gi"
  2132.            "ve them the same name as the changelevel landmark. Any entities wi"
  2133.            "thin the trigger_transition(s) will go to the next map.See trigger"
  2134.            "_changelevel for more info."
  2135.         }
  2136.         trigger_wind:b =
  2137.         {
  2138.           t_triggerpoly=!
  2139.           ;desc = "A trigger volume that pushes physics objects that touch it."
  2140.           Speed = "200"
  2141.           SpeedNoise = "0"
  2142.           DirectionNoise = "10"
  2143.           HoldTime = "0"
  2144.           HoldNoise = "0"
  2145.         }
  2146.       }
  2147.     }
  2148.   }
  2149.   Entity Forms.fctx =
  2150.   {
  2151.     t_Angles:incl =
  2152.     {
  2153.       angles: =
  2154.       {
  2155.         txt = "&"
  2156.         hint = "Pitch Yaw Roll (Y Z X)"
  2157.       }
  2158.     }
  2159.     t_Origin:incl =
  2160.     {
  2161.       origin: =
  2162.       {
  2163.         txt = "&"
  2164.         hint = "Origin (X Y Z)"
  2165.       }
  2166.     }
  2167.     t_Studiomodel:incl =
  2168.     {
  2169.      t_modelselect = !
  2170.       skin: =
  2171.       {
  2172.         txt = "&"
  2173.         hint = "Skin"
  2174.       }
  2175.       disableshadows: =
  2176.       {
  2177.         txt = "&"
  2178.         hint = "Disable Shadows"
  2179.         typ = "C"
  2180.         items = "No"$0D"Yes"
  2181.         values = "0"$0D"1"
  2182.       }
  2183.       input#Skin: =
  2184.       {
  2185.         txt = "&"
  2186.         hint = "Changes the model skin to the specified number."
  2187.       }
  2188.       input#DisableShadow: =
  2189.       {
  2190.         txt = "&"
  2191.         hint = "Turn shadow off."
  2192.       }
  2193.       input#EnableShadow: =
  2194.       {
  2195.         txt = "&"
  2196.         hint = "Turn shadow on."
  2197.       }
  2198.       output#OnIgnite: =
  2199.       {
  2200.         txt = "&"
  2201.         hint = "Fired when this object catches fire."
  2202.       }
  2203.     }
  2204.     t_BasePlat:incl =
  2205.     {
  2206.       input#Toggle: =
  2207.       {
  2208.         txt = "&"
  2209.         hint = "Toggles the platform's state."
  2210.       }
  2211.       input#GoUp: =
  2212.       {
  2213.         txt = "&"
  2214.         hint = "Tells the platform to go up."
  2215.       }
  2216.       input#GoDown: =
  2217.       {
  2218.         txt = "&"
  2219.         hint = "Tells the platform to go down."
  2220.       }
  2221.     }
  2222.     t_Targetname:incl =
  2223.     {
  2224.       targetname: =
  2225.       {
  2226.         txt = "&"
  2227.         hint = "Name"
  2228.       }
  2229.       input#Kill: =
  2230.       {
  2231.         txt = "&"
  2232.         hint = "Removes this entity from the world."
  2233.       }
  2234.       input#KillHierarchy: =
  2235.       {
  2236.         txt = "&"
  2237.         hint = "Removes this entity and all its children from the world."
  2238.       }
  2239.       input#AddOutput: =
  2240.       {
  2241.         txt = "&"
  2242.         hint = "Adds an entity I/O connection to this entity. Format: <output "
  2243.          "name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fir"
  2244.          "e (-1 == infinite)>. Very dangerous, use with care."
  2245.       }
  2246.       input#FireUser1: =
  2247.       {
  2248.         txt = "&"
  2249.         hint = "Causes this entity's OnUser1 output to be fired."
  2250.       }
  2251.       input#FireUser2: =
  2252.       {
  2253.         txt = "&"
  2254.         hint = "Causes this entity's OnUser2 output to be fired."
  2255.       }
  2256.       input#FireUser3: =
  2257.       {
  2258.         txt = "&"
  2259.         hint = "Causes this entity's OnUser3 output to be fired."
  2260.       }
  2261.       input#FireUser4: =
  2262.       {
  2263.         txt = "&"
  2264.         hint = "Causes this entity's OnUser4 output to be fired."
  2265.       }
  2266.       output#OnUser1: =
  2267.       {
  2268.         txt = "&"
  2269.         hint = "Fired in response to FireUser1 input."
  2270.       }
  2271.       output#OnUser2: =
  2272.       {
  2273.         txt = "&"
  2274.         hint = "Fired in response to FireUser2 input."
  2275.       }
  2276.       output#OnUser3: =
  2277.       {
  2278.         txt = "&"
  2279.         hint = "Fired in response to FireUser3 input."
  2280.       }
  2281.       output#OnUser4: =
  2282.       {
  2283.         txt = "&"
  2284.         hint = "Fired in response to FireUser4 input."
  2285.       }
  2286.     }
  2287.     t_Parentname:incl =
  2288.     {
  2289.       parentname: =
  2290.       {
  2291.         txt = "&"
  2292.         hint = "Parent"
  2293.       }
  2294.       input#SetParent: =
  2295.       {
  2296.         txt = "&"
  2297.         hint = "Changes the entity's parent in the movement hierarchy."
  2298.       }
  2299.       input#SetParentAttachment: =
  2300.       {
  2301.         txt = "&"
  2302.         hint = "Change this entity to attach to a specific attachment point on"
  2303.          " its parent. Entities must be parented before being sent this input."
  2304.          " The parameter passed in should be the name of the attachment."
  2305.       }
  2306.       input#ClearParent: =
  2307.       {
  2308.         txt = "&"
  2309.         hint = "Removes this entity from the the movement hierarchy, leaving i"
  2310.          "t free to move independently."
  2311.       }
  2312.     }
  2313.     t_BaseBrush:incl =
  2314.     {
  2315.       input#SetTextureIndex: =
  2316.       {
  2317.         txt = "&"
  2318.         hint = "Used by HL1Port. Sets the brush texture index. Use a material_"
  2319.          "modify_control entity instead."
  2320.       }
  2321.       input#IncrementTextureIndex: =
  2322.       {
  2323.         txt = "&"
  2324.         hint = "Used by HL1Port. Increments the brush texture index. Use a mat"
  2325.          "erial_modify_control entity instead."
  2326.       }
  2327.     }
  2328.     t_EnableDisable:incl =
  2329.     {
  2330.       StartDisabled: =
  2331.       {
  2332.         txt = "&"
  2333.         hint = "Start Disabled"
  2334.         typ = "C"
  2335.         items = "No"$0D"Yes"
  2336.         values = "0"$0D"1"
  2337.       }
  2338.       input#Enable: =
  2339.       {
  2340.         txt = "&"
  2341.         hint = "Enable this entity."
  2342.       }
  2343.       input#Disable: =
  2344.       {
  2345.         txt = "&"
  2346.         hint = "Disable this entity."
  2347.       }
  2348.     }
  2349.     t_RenderFxChoices:incl =
  2350.     {
  2351.       renderfx: =
  2352.       {
  2353.         txt = "&"
  2354.         hint = "Render FX"
  2355.         typ = "C"
  2356.         items = "Normal"$0D"Slow Pulse"$0D"Fast Pulse"$0D"Slow Wide Pulse"$0D"F"
  2357.          "ast Wide Pulse"$0D"Slow Strobe"$0D"Fast Strobe"$0D"Faster Strobe"$0D
  2358.          "Slow Flicker"$0D"Fast Flicker"$0D"Slow Fade Away"$0D"Fast Fade Away"$0D
  2359.          "Slow Become Solid"$0D"Fast Become Solid"$0D"Constant Glow"$0D"Distor"
  2360.          "t"$0D"Hologram (Distort + fade)"$0D"Cull By Distance (TEST)"$0D"Spot"
  2361.          "light FX"$0D"Fade Near"
  2362.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"9"$0D"10"$0D"11"$0D"12"$0D"13"$0D
  2363.          "5"$0D"6"$0D"7"$0D"8"$0D"14"$0D"15"$0D"16"$0D"23"$0D"24"$0D"26"
  2364.       }
  2365.     }
  2366.     t_Shadow:incl =
  2367.     {
  2368.       disableshadows: =
  2369.       {
  2370.         txt = "&"
  2371.         hint = "Disable shadows"
  2372.         typ = "C"
  2373.         items = "No"$0D"Yes"
  2374.         values = "0"$0D"1"
  2375.       }
  2376.       input#DisableShadow: =
  2377.       {
  2378.         txt = "&"
  2379.         hint = "Turn shadow off."
  2380.       }
  2381.       input#EnableShadow: =
  2382.       {
  2383.         txt = "&"
  2384.         hint = "Turn shadow on."
  2385.       }
  2386.     }
  2387.     t_RenderFields:incl =
  2388.     {
  2389.       t_RenderFxChoices = !
  2390.       rendermode: =
  2391.       {
  2392.         txt = "&"
  2393.         hint = "Render Mode"
  2394.         typ = "C"
  2395.         items = "Normal"$0D"Color"$0D"Texture"$0D"Glow"$0D"Solid"$0D"Additive"$0D
  2396.          "Additive Fractional Frame"$0D"World Space Glow"$0D"Dont Render"
  2397.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"7"$0D"9"$0D"10"
  2398.       }
  2399.       renderamt: =
  2400.       {
  2401.         txt = "&"
  2402.         hint = "FX Amount (0 - 255)"
  2403.       }
  2404.       rendercolor: =
  2405.       {
  2406.         txt = "&"
  2407.         hint = "FX Color (R G B)"
  2408.       }
  2409.       rendercolor: =
  2410.       {
  2411.         Txt = "&"
  2412.         Typ = "LU3"
  2413.         Hint = "FX Color (R G B)"
  2414.       }
  2415.       disablereceiveshadows: =
  2416.       {
  2417.         txt = "&"
  2418.         hint = "Disable Receiving Shadows"
  2419.         typ = "C"
  2420.         items = "No"$0D"Yes"
  2421.         values = "0"$0D"1"
  2422.       }
  2423.     }
  2424.     t_DXLevelChoice:incl =
  2425.     {
  2426.       mindxlevel: =
  2427.       {
  2428.         txt = "&"
  2429.         hint = "Minimum DX Level"
  2430.         typ = "C"
  2431.         items = "default (lowest)"$0D"dx7"
  2432.         values = "0"$0D"70"
  2433.       }
  2434.       maxdxlevel: =
  2435.       {
  2436.         txt = "&"
  2437.         hint = "Maximum DX Level"
  2438.         typ = "C"
  2439.         items = "default (highest)"$0D"dx6"
  2440.         values = "0"$0D"60"
  2441.       }
  2442.     }
  2443.     t_Inputfilter:incl =
  2444.     {
  2445.       InputFilter: =
  2446.       {
  2447.         txt = "&"
  2448.         hint = "Input Filter"
  2449.         typ = "C"
  2450.         items = "Allow all inputs"$0D"Ignore Touch/Untouch"$0D"Ignore Use"$0D"I"
  2451.          "gnore All"
  2452.         values = "0"$0D"8"$0D"16"$0D"32"
  2453.       }
  2454.     }
  2455.     t_Global:incl =
  2456.     {
  2457.       globalname: =
  2458.       {
  2459.         txt = "&"
  2460.         hint = "Global Entity Name"
  2461.       }
  2462.     }
  2463.     t_EnvGlobal:incl =
  2464.     {
  2465.       t_Targetname = !
  2466.       initialstate: =
  2467.       {
  2468.         txt = "&"
  2469.         hint = "Initial State"
  2470.         typ = "C"
  2471.         items = "Off"$0D"On"$0D"Dead"
  2472.         values = "0"$0D"1"$0D"2"
  2473.       }
  2474.       spawnflags: =
  2475.       {
  2476.         txt = "&"
  2477.         typ = "X1"
  2478.         cap = "Set Initial State"
  2479.       }
  2480.       input#TurnOn: =
  2481.       {
  2482.         txt = "&"
  2483.         hint = "Set state of global to ON."
  2484.       }
  2485.       input#TurnOff: =
  2486.       {
  2487.         txt = "&"
  2488.         hint = "Set state of global to OFF."
  2489.       }
  2490.       input#Toggle: =
  2491.       {
  2492.         txt = "&"
  2493.         hint = "Toggles state of global between ON and OFF."
  2494.       }
  2495.       input#Remove: =
  2496.       {
  2497.         txt = "&"
  2498.         hint = "Set state of global to DEAD."
  2499.       }
  2500.     }
  2501.     t_DamageFilter:incl =
  2502.     {
  2503.       damagefilter: =
  2504.       {
  2505.         txt = "&"
  2506.         hint = "Damage Filter"
  2507.       }
  2508.       input#SetDamageFilter: =
  2509.       {
  2510.         txt = "&"
  2511.         hint = "Sets the entity to use as damage filter. Pass in an empty stri"
  2512.          "ng to clear the damage filter."
  2513.       }
  2514.     }
  2515.     t_ResponseContext:incl =
  2516.     {
  2517.       input#AddContext: =
  2518.       {
  2519.         txt = "&"
  2520.         hint = "Adds a context to this entity's list of response contexts. The"
  2521.          " format should be 'key:value'."
  2522.       }
  2523.       input#RemoveContext: =
  2524.       {
  2525.         txt = "&"
  2526.         hint = "Remove a context from this entity's list of response contexts."
  2527.          " The name should match the 'key' of a previously added context."
  2528.       }
  2529.       input#ClearContext: =
  2530.       {
  2531.         txt = "&"
  2532.         hint = "Removes all contexts in this entity's list of response context"
  2533.          "s."
  2534.       }
  2535.       ResponseContext: =
  2536.       {
  2537.         txt = "&"
  2538.         hint = "Response Contexts"
  2539.       }
  2540.     }
  2541.     t_Breakable:incl =
  2542.     {
  2543.       t_Targetname = !
  2544.       t_DamageFilter = !
  2545.       t_Shadow = !
  2546.       ExplodeDamage: =
  2547.       {
  2548.         txt = "&"
  2549.         hint = "Explosion Damage"
  2550.       }
  2551.       ExplodeRadius: =
  2552.       {
  2553.         txt = "&"
  2554.         hint = "Explosion Radius"
  2555.       }
  2556.       PerformanceMode: =
  2557.       {
  2558.         txt = "&"
  2559.         hint = "Performance Mode"
  2560.         typ = "C"
  2561.         items = "Normal"$0D"Limit Gibs"$0D"Full Gibs on All Platforms"
  2562.         values = "0"$0D"1"$0D"2"
  2563.       }
  2564.       input#Break: =
  2565.       {
  2566.         txt = "&"
  2567.         hint = "Breaks the breakable."
  2568.       }
  2569.       input#SetHealth: =
  2570.       {
  2571.         txt = "&"
  2572.         hint = "Sets a new value for the breakable's health. If the breakable'"
  2573.          "s health reaches zero it will break."
  2574.       }
  2575.       input#AddHealth: =
  2576.       {
  2577.         txt = "&"
  2578.         hint = "Adds health to the breakable. If the breakable's health reache"
  2579.          "s zero it will break."
  2580.       }
  2581.       input#RemoveHealth: =
  2582.       {
  2583.         txt = "&"
  2584.         hint = "Removes health from the breakable. If the breakable's health r"
  2585.          "eaches zero it will break."
  2586.       }
  2587.       input#EnablePhyscannonPickup: =
  2588.       {
  2589.         txt = "&"
  2590.         hint = "Makes the breakable able to picked up by the physcannon."
  2591.       }
  2592.       input#DisablePhyscannonPickup: =
  2593.       {
  2594.         txt = "&"
  2595.         hint = "Makes the breakable not able to picked up by the physcannon."
  2596.       }
  2597.       output#OnBreak: =
  2598.       {
  2599.         txt = "&"
  2600.         hint = "Fired when this breakable breaks."
  2601.       }
  2602.       output#OnHealthChanged: =
  2603.       {
  2604.         txt = "&"
  2605.         hint = "Fired when the health of this breakable changes, passing the n"
  2606.          "ew value of health as a percentage of max health, from [0..1]."
  2607.       }
  2608.       output#OnPhysCannonDetach: =
  2609.       {
  2610.         txt = "&"
  2611.         hint = "Fired when the physcannon has ripped this breakable off of the"
  2612.          " wall. Only fired if ACT_PHYSCANNON_DETACH is defined in the model t"
  2613.          "his breakable is using."
  2614.       }
  2615.     }
  2616.     t_BreakableBrush:incl =
  2617.     {
  2618.       t_Breakable = !
  2619.       t_Parentname = !
  2620.       t_Global = !
  2621.       spawnflags: =
  2622.       {
  2623.         txt = "&"
  2624.         typ = "X1"
  2625.         cap = "Only Break on Trigger"
  2626.       }
  2627.       spawnflags: =
  2628.       {
  2629.         txt = "&"
  2630.         typ = "X2"
  2631.         cap = "Break on Touch"
  2632.       }
  2633.       spawnflags: =
  2634.       {
  2635.         txt = "&"
  2636.         typ = "X4"
  2637.         cap = "Break on Pressure"
  2638.       }
  2639.       spawnflags: =
  2640.       {
  2641.         txt = "&"
  2642.         typ = "X512"
  2643.         cap = "Break immediately on Physics"
  2644.       }
  2645.       spawnflags: =
  2646.       {
  2647.         txt = "&"
  2648.         typ = "X1024"
  2649.         cap = "Don't take physics damage"
  2650.       }
  2651.       propdata: =
  2652.       {
  2653.         txt = "&"
  2654.         hint = "Prop Data"
  2655.         typ = "C"
  2656.         items = "None"$0D"Wooden.Tiny"$0D"Wooden.Small"$0D"Wooden.Medium"$0D"W"
  2657.          "ooden.Large"$0D"Wooden.Huge"$0D"Metal.Small"$0D"Metal.Medium"$0D"Met"
  2658.          "al.Large"$0D"Cardboard.Small"$0D"Cardboard.Medium"$0D"Cardboard.Larg"
  2659.          "e"$0D"Stone.Small"$0D"Stone.Medium"$0D"Stone.Large"$0D"Stone.Huge"$0D
  2660.          "Glass.Small"$0D"Plastic.Small"$0D"Plastic.Medium"$0D"Plastic.Large"$0D
  2661.          "Pottery.Small"$0D"Pottery.Medium"$0D"Pottery.Large"$0D"Pottery.Huge"$0D
  2662.          "Glass.Window"
  2663.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"1"
  2664.          "0"$0D"11"$0D"12"$0D"13"$0D"14"$0D"15"$0D"16"$0D"17"$0D"18"$0D"19"$0D
  2665.          "20"$0D"21"$0D"22"$0D"23"$0D"24"
  2666.       }
  2667.       health: =
  2668.       {
  2669.         txt = "&"
  2670.         hint = "Strength"
  2671.       }
  2672.       material: =
  2673.       {
  2674.         txt = "&"
  2675.         hint = "Material Type"
  2676.         typ = "C"
  2677.         items = "Glass"$0D"Wood"$0D"Metal"$0D"Flesh"$0D"CinderBlock"$0D"Ceilin"
  2678.          "g Tile"$0D"Computer"$0D"Unbreakable Glass"$0D"Rocks"
  2679.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"
  2680.       }
  2681.       explosion: =
  2682.       {
  2683.         txt = "&"
  2684.         hint = "Gibs Direction"
  2685.         typ = "C"
  2686.         items = "Random"$0D"Relative to Attack"$0D"Use Precise Gib Dir"
  2687.         values = "0"$0D"1"$0D"2"
  2688.       }
  2689.       gibdir: =
  2690.       {
  2691.         txt = "&"
  2692.         hint = "Precise Gib Direction"
  2693.       }
  2694.       nodamageforces: =
  2695.       {
  2696.         txt = "&"
  2697.         hint = "Damaging it Doesn't Push It"
  2698.         typ = "C"
  2699.         items = "No"$0D"Yes"
  2700.         values = "0"$0D"1"
  2701.       }
  2702.       input#EnableDamageForces: =
  2703.       {
  2704.         txt = "&"
  2705.         hint = "Damaging the entity applies physics forces to it."
  2706.       }
  2707.       input#DisableDamageForces: =
  2708.       {
  2709.         txt = "&"
  2710.         hint = "Damaging the entity does *not* apply physics forces to it."
  2711.       }
  2712.       gibmodel: =
  2713.       {
  2714.         txt = "&"
  2715.         hint = "Gib Model"
  2716.       }
  2717.       spawnobject: =
  2718.       {
  2719.         txt = "&"
  2720.         hint = "Spawn On Break"
  2721.         typ = "C"
  2722.         items = "item_battery"$0D"item_healthkit"$0D"item_ammo_pistol"$0D"item"
  2723.          "_ammo_pistol_large"$0D"item_ammo_smg1"$0D"item_ammo_smg1_large"$0D"i"
  2724.          "tem_ammo_ar2"$0D"item_ammo_ar2_large"$0D"item_box_buckshot"$0D"item_"
  2725.          "flare_round"$0D"item_box_flare_rounds"$0D"item_ml_grenade"$0D"item_s"
  2726.          "mg1_grenade"$0D"item_box_sniper_rounds"$0D"unused1"$0D"weapon_stunst"
  2727.          "ick"$0D"weapon_ar1"$0D"weapon_ar2"$0D"unused2"$0D"weapon_ml"$0D"weap"
  2728.          "on_smg1"$0D"weapon_smg2"$0D"weapon_slam"$0D"weapon_shotgun"$0D"weapo"
  2729.          "n_molotov"$0D"item_dynamic_resupply"
  2730.         values = "1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"10"$0D
  2731.          "11"$0D"12"$0D"13"$0D"14"$0D"15"$0D"16"$0D"17"$0D"18"$0D"19"$0D"20"$0D
  2732.          "21"$0D"22"$0D"23"$0D"24"$0D"25"$0D"26"
  2733.       }
  2734.       explodemagnitude: =
  2735.       {
  2736.         txt = "&"
  2737.         hint = "Explode Magnitude"
  2738.       }
  2739.       pressuredelay: =
  2740.       {
  2741.         txt = "&"
  2742.         hint = "Pressure Delay"
  2743.       }
  2744.     }
  2745.     t_BreakableProp:incl =
  2746.     {
  2747.       t_Breakable = !
  2748.       spawnflags: =
  2749.       {
  2750.         txt = "&"
  2751.         typ = "X16"
  2752.         cap = "Break on Touch"
  2753.       }
  2754.       spawnflags: =
  2755.       {
  2756.         txt = "&"
  2757.         typ = "X32"
  2758.         cap = "Break on Pressure"
  2759.       }
  2760.       pressuredelay: =
  2761.       {
  2762.         txt = "&"
  2763.         hint = "Pressure Delay"
  2764.       }
  2765.     }
  2766.     t_BaseNPC:incl =
  2767.     {
  2768.       t_Targetname = !
  2769.       t_Angles = !
  2770.       t_RenderFields = !
  2771.       t_DamageFilter = !
  2772.       t_ResponseContext = !
  2773.       t_Shadow = !
  2774.       target: =
  2775.       {
  2776.         txt = "&"
  2777.         hint = "Target Path Corner"
  2778.       }
  2779.       squadname: =
  2780.       {
  2781.         txt = "&"
  2782.         hint = "Squad Name"
  2783.       }
  2784.       hintgroup: =
  2785.       {
  2786.         txt = "&"
  2787.         hint = "Hint Group"
  2788.       }
  2789.       hintlimiting: =
  2790.       {
  2791.         txt = "&"
  2792.         hint = "Hint Limit Nav"
  2793.         typ = "C"
  2794.         items = "No"$0D"Yes"
  2795.         values = "0"$0D"1"
  2796.       }
  2797.       spawnflags: =
  2798.       {
  2799.         txt = "&"
  2800.         typ = "X1"
  2801.         cap = "Wait Till Seen"
  2802.       }
  2803.       spawnflags: =
  2804.       {
  2805.         txt = "&"
  2806.         typ = "X2"
  2807.         cap = "Gag (No IDLE sounds until angry)"
  2808.       }
  2809.       spawnflags: =
  2810.       {
  2811.         txt = "&"
  2812.         typ = "X4"
  2813.         cap = "Fall to ground (unchecked means *teleport* to ground)"
  2814.       }
  2815.       spawnflags: =
  2816.       {
  2817.         txt = "&"
  2818.         typ = "X8"
  2819.         cap = "Drop Healthkit"
  2820.       }
  2821.       spawnflags: =
  2822.       {
  2823.         txt = "&"
  2824.         typ = "X16"
  2825.         cap = "Efficient - Don't acquire enemies or avoid obstacles"
  2826.       }
  2827.       spawnflags: =
  2828.       {
  2829.         txt = "&"
  2830.         typ = "X128"
  2831.         cap = "Wait For Script"
  2832.       }
  2833.       spawnflags: =
  2834.       {
  2835.         txt = "&"
  2836.         typ = "X256"
  2837.         cap = "Long Visibility/Shoot"
  2838.       }
  2839.       spawnflags: =
  2840.       {
  2841.         txt = "&"
  2842.         typ = "X512"
  2843.         cap = "Fade Corpse"
  2844.       }
  2845.       spawnflags: =
  2846.       {
  2847.         txt = "&"
  2848.         typ = "X1024"
  2849.         cap = "Think outside PVS"
  2850.       }
  2851.       spawnflags: =
  2852.       {
  2853.         txt = "&"
  2854.         typ = "X2048"
  2855.         cap = "Template NPC (used by npc_maker, will not spawn)"
  2856.       }
  2857.       spawnflags: =
  2858.       {
  2859.         txt = "&"
  2860.         typ = "X4096"
  2861.         cap = "Do Alternate collision for this NPC (player avoidance)"
  2862.       }
  2863.       spawnflags: =
  2864.       {
  2865.         txt = "&"
  2866.         typ = "X8192"
  2867.         cap = "Don't drop weapons"
  2868.       }
  2869.       sleepstate: =
  2870.       {
  2871.         txt = "&"
  2872.         hint = "Sleep State"
  2873.         typ = "C"
  2874.         items = "None"$0D"Waiting for threat"$0D"Waiting for PVS"$0D"Waiting f"
  2875.          "or input"
  2876.         values = "0"$0D"1"$0D"2"$0D"3"
  2877.       }
  2878.       wakeradius: =
  2879.       {
  2880.         txt = "&"
  2881.         hint = "Wake Radius"
  2882.       }
  2883.       wakesquad: =
  2884.       {
  2885.         txt = "&"
  2886.         hint = "Wake Squad"
  2887.         typ = "C"
  2888.         items = "No"$0D"Yes"
  2889.         values = "0"$0D"1"
  2890.       }
  2891.       physdamagescale: =
  2892.       {
  2893.         txt = "&"
  2894.         hint = "Physics Impact Damage Scale"
  2895.       }
  2896.       output#OnDamaged: =
  2897.       {
  2898.         txt = "&"
  2899.         hint = "Fired when this NPC takes damage."
  2900.       }
  2901.       output#OnDeath: =
  2902.       {
  2903.         txt = "&"
  2904.         hint = "Fired when this NPC is killed."
  2905.       }
  2906.       output#OnHalfHealth: =
  2907.       {
  2908.         txt = "&"
  2909.         hint = "Fired when this NPC reaches half of its maximum health."
  2910.       }
  2911.       output#OnHearWorld: =
  2912.       {
  2913.         txt = "&"
  2914.         hint = "Fired when this NPC hears a sound (other than combat or the pl"
  2915.          "ayer)."
  2916.       }
  2917.       output#OnHearPlayer: =
  2918.       {
  2919.         txt = "&"
  2920.         hint = "Fired when this NPC hears the player."
  2921.       }
  2922.       output#OnHearCombat: =
  2923.       {
  2924.         txt = "&"
  2925.         hint = "Fired when this NPC hears combat sounds."
  2926.       }
  2927.       output#OnFoundEnemy: =
  2928.       {
  2929.         txt = "&"
  2930.         hint = "Fired when this NPC establishes line of sight to its enemy (ou"
  2931.          "tputs entity)."
  2932.       }
  2933.       output#OnLostEnemyLOS: =
  2934.       {
  2935.         txt = "&"
  2936.         hint = "Fired when this NPC loses line of sight to its enemy."
  2937.       }
  2938.       output#OnLostEnemy: =
  2939.       {
  2940.         txt = "&"
  2941.         hint = "Fired when this NPC loses its enemy. Usually due to the enemy "
  2942.          "being killed/removed, or because this NPC has selected a newer, more"
  2943.          " dangerous enemy."
  2944.       }
  2945.       output#OnFoundPlayer: =
  2946.       {
  2947.         txt = "&"
  2948.         hint = "Fired when this NPC establishes line of sight to its enemy, an"
  2949.          "d that enemy is a player (outputs player entity)."
  2950.       }
  2951.       output#OnLostPlayerLOS: =
  2952.       {
  2953.         txt = "&"
  2954.         hint = "Fired when this NPC loses line of sight to its enemy, and that"
  2955.          " enemy is a player."
  2956.       }
  2957.       output#OnLostPlayer: =
  2958.       {
  2959.         txt = "&"
  2960.         hint = "Fired when this NPC loses its enemy, and that enemy was a play"
  2961.          "er. Usually due to the enemy being killed/removed, or because this N"
  2962.          "PC has selected a newer, more dangerous enemy."
  2963.       }
  2964.       output#OnDamagedByPlayer: =
  2965.       {
  2966.         txt = "&"
  2967.         hint = "Fired when this NPC is hurt by a player."
  2968.       }
  2969.       output#OnDamagedByPlayerSquad: =
  2970.       {
  2971.         txt = "&"
  2972.         hint = "Fired when this NPC is hurt by a player OR by one of the playe"
  2973.          "r's squadmates."
  2974.       }
  2975.       output#OnDenyCommanderUse: =
  2976.       {
  2977.         txt = "&"
  2978.         hint = "Fired when this NPC has refused to join the player's squad."
  2979.       }
  2980.       output#OnWake: =
  2981.       {
  2982.         txt = "&"
  2983.         hint = "Fired when this NPC comes out of a sleep state."
  2984.       }
  2985.       input#SetRelationship: =
  2986.       {
  2987.         txt = "&"
  2988.         hint = "Changes this entity's relationship with another entity or clas"
  2989.          "s. Format: <entityname/classname> <D_HT/D_FR/D_LI/D_NU> <priority>"
  2990.       }
  2991.       input#SetHealth: =
  2992.       {
  2993.         txt = "&"
  2994.         hint = "Set this NPC's health."
  2995.       }
  2996.       input#SetBodyGroup: =
  2997.       {
  2998.         txt = "&"
  2999.         hint = "HACK: Sets this NPC's body group (from 0 - n). You'd better kn"
  3000.          "ow what you are doing!"
  3001.       }
  3002.       input#physdamagescale: =
  3003.       {
  3004.         txt = "&"
  3005.         hint = "Sets the value that scales damage energy when this character i"
  3006.          "s hit by a physics object. NOTE: 0 means this feature is disabled fo"
  3007.          "r backwards compatibility."
  3008.       }
  3009.       input#Ignite: =
  3010.       {
  3011.         txt = "&"
  3012.         hint = "Ignite, burst into flames"
  3013.       }
  3014.       input#Break: =
  3015.       {
  3016.         txt = "&"
  3017.         hint = "Break, smash into pieces"
  3018.       }
  3019.       input#StartScripting: =
  3020.       {
  3021.         txt = "&"
  3022.         hint = "Enter scripting state. In this state, NPCs ignore a variety of"
  3023.          " stimulus that would make them break out of their scripts: They igno"
  3024.          "re danger sounds, ignore +USE, don't idle speak or respond to other "
  3025.          "NPC's idle speech, and so on."
  3026.       }
  3027.       input#StopScripting: =
  3028.       {
  3029.         txt = "&"
  3030.         hint = "Exit scripting state."
  3031.       }
  3032.       input#Assault: =
  3033.       {
  3034.         txt = "&"
  3035.         hint = "Start an assault. Parameter passed in should be the name of th"
  3036.          "e rally point."
  3037.       }
  3038.       input#SetSquad: =
  3039.       {
  3040.         txt = "&"
  3041.         hint = "Set the name of this NPC's squad. It will be removed from any "
  3042.          "existing squad automatically. Leaving the parameter blank will remov"
  3043.          "e the NPC from any existing squad."
  3044.       }
  3045.       input#Wake: =
  3046.       {
  3047.         txt = "&"
  3048.         hint = "Wakes up the NPC if it is sleeping."
  3049.       }
  3050.       input#ForgetEntity: =
  3051.       {
  3052.         txt = "&"
  3053.         hint = "Clears out the NPC's knowledge of a named entity."
  3054.       }
  3055.       input#GagEnable: =
  3056.       {
  3057.         txt = "&"
  3058.         hint = "Turn on the NPC Gag flag. NPC won't speak outside of choreogra"
  3059.          "phed scenes."
  3060.       }
  3061.       input#GagDisable: =
  3062.       {
  3063.         txt = "&"
  3064.         hint = "Turn off the NPC Gag flag."
  3065.       }
  3066.       input#IgnoreDangerSounds: =
  3067.       {
  3068.         txt = "&"
  3069.         hint = "Ignore danger sounds for the specified number of seconds."
  3070.       }
  3071.     }
  3072.     info_npc_spawn_destination:form =
  3073.     {
  3074.       t_Targetname = !
  3075.       t_Parentname = !
  3076.       t_Angles = !
  3077.       ReuseDelay: =
  3078.       {
  3079.         txt = "&"
  3080.         hint = "Reuse Delay"
  3081.       }
  3082.       RenameNPC: =
  3083.       {
  3084.         txt = "&"
  3085.         hint = "New NPC Name"
  3086.       }
  3087.       output#OnSpawnNPC: =
  3088.       {
  3089.         txt = "&"
  3090.         hint = "Fired when an NPC spawns at this destination."
  3091.       }
  3092.     }
  3093.     t_BaseNPCMaker:incl =
  3094.     {
  3095.       t_Targetname = !
  3096.       t_Angles = !
  3097.       t_EnableDisable = !
  3098.       spawnflags: =
  3099.       {
  3100.         txt = "&"
  3101.         typ = "X16"
  3102.         cap = "Fade Corpse"
  3103.       }
  3104.       spawnflags: =
  3105.       {
  3106.         txt = "&"
  3107.         typ = "X32"
  3108.         cap = "Infinite Children"
  3109.       }
  3110.       spawnflags: =
  3111.       {
  3112.         txt = "&"
  3113.         typ = "X64"
  3114.         cap = "Do Not Drop"
  3115.       }
  3116.       spawnflags: =
  3117.       {
  3118.         txt = "&"
  3119.         typ = "X128"
  3120.         cap = "Don't Spawn While Visible"
  3121.       }
  3122.       MaxNPCCount: =
  3123.       {
  3124.         txt = "&"
  3125.         hint = "Num. of NPCs"
  3126.       }
  3127.       SpawnFrequency: =
  3128.       {
  3129.         txt = "&"
  3130.         hint = "Frequency"
  3131.       }
  3132.       MaxLiveChildren: =
  3133.       {
  3134.         txt = "&"
  3135.         hint = "Max Live NPCs"
  3136.       }
  3137.       output#OnSpawnNPC: =
  3138.       {
  3139.         txt = "&"
  3140.         hint = "Fired when an NPC is spawned. The activator is the NPC, and th"
  3141.          "e string is the name of the NPC."
  3142.       }
  3143.       output#OnAllSpawned: =
  3144.       {
  3145.         txt = "&"
  3146.         hint = "Fired when the spawned is exhausted (all children have been sp"
  3147.          "awned)."
  3148.       }
  3149.       output#OnAllSpawnedDead: =
  3150.       {
  3151.         txt = "&"
  3152.         hint = "Fired when the spawner is exhausted (all children have been sp"
  3153.          "awned), and all spawned children have died."
  3154.       }
  3155.       input#Spawn: =
  3156.       {
  3157.         txt = "&"
  3158.         hint = "Spawns an NPC."
  3159.       }
  3160.       input#Toggle: =
  3161.       {
  3162.         txt = "&"
  3163.         hint = "Toggles the spawner enabled/disabled state."
  3164.       }
  3165.       input#AddMaxChildren: =
  3166.       {
  3167.         txt = "&"
  3168.         hint = "Adds to the number of NPCs that can spawn before the spawner i"
  3169.          "s exhausted. If an exhausted spawner is given some children to spawn"
  3170.          ", it still wont begin spawning until it is re-enabled with the Enabl"
  3171.          "e input."
  3172.       }
  3173.       input#SetMaxChildren: =
  3174.       {
  3175.         txt = "&"
  3176.         hint = "Sets the number of NPCs that can spawn before the spawner is e"
  3177.          "xhausted. If an exhausted spawner is given some children to spawn, i"
  3178.          "t still won't begin spawning until it is re-enabled with the Enable "
  3179.          "input."
  3180.       }
  3181.       input#SetMaxLiveChildren: =
  3182.       {
  3183.         txt = "&"
  3184.         hint = "Sets the maximum number of NPCs that can be alive at any one t"
  3185.          "ime from this spawner."
  3186.       }
  3187.       input#SetSpawnFrequency: =
  3188.       {
  3189.         txt = "&"
  3190.         hint = "Sets how often (in seconds) a new NPC will be spawned."
  3191.       }
  3192.     }
  3193.     npc_template_maker:form =
  3194.     {
  3195.       t_BaseNPCMaker = !
  3196.       spawnflags: =
  3197.       {
  3198.         txt = "&"
  3199.         typ = "X256"
  3200.         cap = "Always use radius spawn"
  3201.       }
  3202.       spawnflags: =
  3203.       {
  3204.         txt = "&"
  3205.         typ = "X512"
  3206.         cap = "Don't preload template models"
  3207.       }
  3208.       TemplateName: =
  3209.       {
  3210.         txt = "&"
  3211.         hint = "Name of template NPC"
  3212.       }
  3213.       Radius: =
  3214.       {
  3215.         txt = "&"
  3216.         hint = "Radius"
  3217.       }
  3218.       DestinationGroup: =
  3219.       {
  3220.         txt = "&"
  3221.         hint = "Name of Destination Group"
  3222.       }
  3223.       CriterionVisibility: =
  3224.       {
  3225.         txt = "&"
  3226.         hint = "Dest. Criterion: Visible to player?"
  3227.         typ = "C"
  3228.         items = "Yes"$0D"No"$0D"Don't Care"
  3229.         values = "0"$0D"1"$0D"2"
  3230.       }
  3231.       CriterionDistance: =
  3232.       {
  3233.         txt = "&"
  3234.         hint = "Dest. Criterion: Distance to player?"
  3235.         typ = "C"
  3236.         items = "Nearest"$0D"Farthest"$0D"Don't Care"
  3237.         values = "0"$0D"1"$0D"2"
  3238.       }
  3239.       input#SpawnNPCInRadius: =
  3240.       {
  3241.         txt = "&"
  3242.         hint = "Spawn an NPC somewhere within the maker's radius."
  3243.       }
  3244.       input#SpawnNPCInLine: =
  3245.       {
  3246.         txt = "&"
  3247.         hint = "Spawn an NPC somewhere within a line behind the maker."
  3248.       }
  3249.       input#ChangeDestinationGroup: =
  3250.       {
  3251.         txt = "&"
  3252.         hint = "Switch to a different set of Destination entities."
  3253.       }
  3254.     }
  3255.     t_BaseHelicopter:incl =
  3256.     {
  3257.       t_BaseNPC = !
  3258.       InitialSpeed: =
  3259.       {
  3260.         txt = "&"
  3261.         hint = "Initial Speed"
  3262.       }
  3263.       target: =
  3264.       {
  3265.         txt = "&"
  3266.         hint = "Target path_track"
  3267.       }
  3268.       input#MoveTopSpeed: =
  3269.       {
  3270.         txt = "&"
  3271.         hint = "The helicopter will immediately move at top speed toward its c"
  3272.          "urrent goal, or in its current orientation if it's on top of its goa"
  3273.          "l."
  3274.       }
  3275.       input#ChangePathCorner: =
  3276.       {
  3277.         txt = "&"
  3278.         hint = "Tell the helicopter to move to a path corner on a new path."
  3279.       }
  3280.       input#SelfDestruct: =
  3281.       {
  3282.         txt = "&"
  3283.         hint = "Self Destruct."
  3284.       }
  3285.       input#Activate: =
  3286.       {
  3287.         txt = "&"
  3288.         hint = "Activate. Use to wake up a helicopter that spawned with the 'A"
  3289.          "wait Input' spawnflag on."
  3290.       }
  3291.       input#SetTrack: =
  3292.       {
  3293.         txt = "&"
  3294.         hint = "Set a track for the helicopter to adhere to. The helicopter wi"
  3295.          "ll do nothing if he's on the same path, and will move to the closest"
  3296.          " point on the specified track if he's on a different path."
  3297.       }
  3298.       input#FlyToSpecificTrackViaPath: =
  3299.       {
  3300.         txt = "&"
  3301.         hint = "The helicopter will first fly to the closest point on the path"
  3302.          " if he's on a different path. Then he'll fly along the path to the s"
  3303.          "pecified track point."
  3304.       }
  3305.       input#StartPatrol: =
  3306.       {
  3307.         txt = "&"
  3308.         hint = "Start patrolling back and forth along the current track."
  3309.       }
  3310.       input#StopPatrol: =
  3311.       {
  3312.         txt = "&"
  3313.         hint = "Stop patrolling back and forth along the track. This will caus"
  3314.          "e the helicopter to come to rest at the track which he's currently f"
  3315.          "lying toward."
  3316.       }
  3317.       input#ChooseFarthestPathPoint: =
  3318.       {
  3319.         txt = "&"
  3320.         hint = "When tracking an enemy, choose the point on the path furthest "
  3321.          "from the enemy, but still in firing range."
  3322.       }
  3323.       input#ChooseNearestPathPoint: =
  3324.       {
  3325.         txt = "&"
  3326.         hint = "When tracking an enemy, choose the point on the path nearest f"
  3327.          "rom the enemy."
  3328.       }
  3329.       input#StartBreakableMovement: =
  3330.       {
  3331.         txt = "&"
  3332.         hint = "The helicopter is now allowed to disobey direct commands to go"
  3333.          " to particular points if he senses an enemy. He will move to the clo"
  3334.          "sest point (or farthest point, if ChooseFarthestPathPoint is used), "
  3335.          "on the path if he senses an enemy."
  3336.       }
  3337.       input#StopBreakableMovement: =
  3338.       {
  3339.         txt = "&"
  3340.         hint = "The helicopter can not disobey direct commands. He will contin"
  3341.          "ue to fly along his patrol path or to his specified target even if h"
  3342.          "e senses an enemy."
  3343.       }
  3344.       InitialSpeed: =
  3345.       {
  3346.         txt = "&"
  3347.         hint = "Initial Speed"
  3348.       }
  3349.       target: =
  3350.       {
  3351.         txt = "&"
  3352.         hint = "Target path_track"
  3353.       }
  3354.       spawnflags: =
  3355.       {
  3356.         txt = "&"
  3357.         typ = "X32"
  3358.         cap = "No Rotorwash"
  3359.       }
  3360.       spawnflags: =
  3361.       {
  3362.         txt = "&"
  3363.         typ = "X64"
  3364.         cap = "Await Input"
  3365.       }
  3366.     }
  3367.     t_PlayerClass:incl =
  3368.     {
  3369.     }
  3370.     t_Light:incl =
  3371.     {
  3372.       _light: =
  3373.       {
  3374.         txt = "&"
  3375.         hint = "Brightness"
  3376.       }
  3377.       _light: =
  3378.       {
  3379.         Txt = "&"
  3380.         Typ = "LU4"
  3381.         Hint = "light color (not the intensity, only the color)"
  3382.       }
  3383.  
  3384.       style: =
  3385.       {
  3386.         txt = "&"
  3387.         hint = "Appearance"
  3388.         typ = "C"
  3389.         items = "Normal"$0D"Fluorescent flicker"$0D"Slow, strong pulse"$0D"Slo"
  3390.          "w pulse, noblack"$0D"Gentle pulse"$0D"Flicker A"$0D"Flicker B"$0D"Ca"
  3391.          "ndle A"$0D"Candle B"$0D"Candle C"$0D"Fast strobe"$0D"Slow strobe"
  3392.         values = "0"$0D"10"$0D"2"$0D"11"$0D"5"$0D"1"$0D"6"$0D"3"$0D"7"$0D"8"$0D
  3393.          "4"$0D"9"
  3394.       }
  3395.       pattern: =
  3396.       {
  3397.         txt = "&"
  3398.         hint = "Custom Appearance"
  3399.       }
  3400.       _constant_attn: =
  3401.       {
  3402.         txt = "&"
  3403.         hint = "Constant"
  3404.       }
  3405.       _linear_attn: =
  3406.       {
  3407.         txt = "&"
  3408.         hint = "Linear"
  3409.       }
  3410.       _quadratic_attn: =
  3411.       {
  3412.         txt = "&"
  3413.         hint = "Quadratic"
  3414.       }
  3415.       input#TurnOn: =
  3416.       {
  3417.         txt = "&"
  3418.         hint = "Turn the light on."
  3419.       }
  3420.       input#TurnOff: =
  3421.       {
  3422.         txt = "&"
  3423.         hint = "The the light off."
  3424.       }
  3425.       input#Toggle: =
  3426.       {
  3427.         txt = "&"
  3428.         hint = "Toggle the light's current state."
  3429.       }
  3430.       input#SetPattern: =
  3431.       {
  3432.         txt = "&"
  3433.         hint = "Set a custom pattern of light brightness for this light. Patte"
  3434.          "rn format is a string of characters, where 'a' is total darkness, 'z"
  3435.          "' fully bright. i.e. 'aaggnnttzz' would be a steppy fade in from dar"
  3436.          "k to light."
  3437.       }
  3438.       input#FadeToPattern: =
  3439.       {
  3440.         txt = "&"
  3441.         hint = "Fades from first value in old pattern, to first value in the n"
  3442.          "ew given pattern. Pattern format is a string of characters, where 'a"
  3443.          "' is total darkness, 'z' fully bright. i.e. 'aaggnnttzz' would be a "
  3444.          "steppy fade in from dark to light."
  3445.       }
  3446.     }
  3447.     t_Node:incl =
  3448.     {
  3449.       nodeid: =
  3450.       {
  3451.         txt = "&"
  3452.         hint = "Node ID"
  3453.       }
  3454.     }
  3455.     t_HintNode:incl =
  3456.     {
  3457.       t_Node = !
  3458.       hinttype: =
  3459.       {
  3460.         txt = "&"
  3461.         hint = "Hint"
  3462.         typ = "C"
  3463.         items = "None"$0D"World: Window"$0D"World: Act Busy Hint"$0D"World: Vi"
  3464.          "sually Interesting"$0D"World: Visually Interesting (Don't aim at)"$0D
  3465.          "World: Inhibit Combine Mines within 15 feet"$0D"Crouch Cover Medium"$0D
  3466.          "Crouch Cover Low"$0D"Waste Scanner Spawn"$0D"Entrance / Exit Pinch"$0D
  3467.          "Enemy Disadvantage Point"$0D"Health Kit"$0D"Antlion: Burrow Point"$0D
  3468.          "Antlion: Thumper Flee Point"$0D"Headcrab: Burrow Point"$0D"Roller: P"
  3469.          "atrol Point"$0D"Roller: Cleanup Spot"$0D"Crow: Fly to point"$0D"Crow"
  3470.          ": Perch point"$0D"Follower: Wait point"$0D"Override jump permission"$0D
  3471.          "Player squad transition point"$0D"NPC exit point"$0D"Strider node"$0D
  3472.          "HL1 World: Machinery"$0D"HL1 World: Blinking Light"$0D"HL1 World: Hu"
  3473.          "man Blood"$0D"HL1 World: Alien Blood"
  3474.         values = "0"$0D"2"$0D"12"$0D"13"$0D"14"$0D"15"$0D"100"$0D"101"$0D"102"$0D
  3475.          "103"$0D"105"$0D"106"$0D"400"$0D"401"$0D"450"$0D"500"$0D"501"$0D"700"$0D
  3476.          "701"$0D"900"$0D"901"$0D"902"$0D"903"$0D"904"$0D"1000"$0D"1001"$0D"10"
  3477.          "02"$0D"1003"
  3478.       }
  3479.       hintactivity: =
  3480.       {
  3481.         txt = "&"
  3482.         hint = "Hint Activity"
  3483.       }
  3484.       nodeFOV: =
  3485.       {
  3486.         txt = "&"
  3487.         hint = "Node FOV"
  3488.         typ = "C"
  3489.         items = "180 Degrees"$0D"360 Degrees"
  3490.         values = "180"$0D"360"
  3491.       }
  3492.       StartHintDisabled: =
  3493.       {
  3494.         txt = "&"
  3495.         hint = "Start Hint Disabled"
  3496.         typ = "C"
  3497.         items = "No"$0D"Yes"
  3498.         values = "0"$0D"1"
  3499.       }
  3500.       Group: =
  3501.       {
  3502.         txt = "&"
  3503.         hint = "Hint Group"
  3504.       }
  3505.       TargetNode: =
  3506.       {
  3507.         txt = "&"
  3508.         hint = "Target node"
  3509.       }
  3510.       IgnoreFacing: =
  3511.       {
  3512.         txt = "&"
  3513.         hint = "Ignore Facing"
  3514.         typ = "C"
  3515.         items = "No"$0D"Yes"$0D"Default"
  3516.         values = "0"$0D"1"$0D"2"
  3517.       }
  3518.       MinimumState: =
  3519.       {
  3520.         txt = "&"
  3521.         hint = "Minimum State"
  3522.         typ = "C"
  3523.         items = "Idle"$0D"Alert"$0D"Combat"
  3524.         values = "1"$0D"2"$0D"3"
  3525.       }
  3526.       MaximumState: =
  3527.       {
  3528.         txt = "&"
  3529.         hint = "Maximum State"
  3530.         typ = "C"
  3531.         items = "Idle"$0D"Alert"$0D"Combat"
  3532.         values = "1"$0D"2"$0D"3"
  3533.       }
  3534.       input#EnableHint: =
  3535.       {
  3536.         txt = "&"
  3537.         hint = "Enable hint."
  3538.       }
  3539.       input#DisableHint: =
  3540.       {
  3541.         txt = "&"
  3542.         hint = "Disable hint."
  3543.       }
  3544.     }
  3545.     t_TriggerOnce:incl =
  3546.     {
  3547.       t_Targetname = !
  3548.       t_Parentname = !
  3549.       t_Origin = !
  3550.       t_EnableDisable = !
  3551.       t_Global = !
  3552.       spawnflags: =
  3553.       {
  3554.         txt = "&"
  3555.         typ = "X1"
  3556.         cap = "Clients"
  3557.       }
  3558.       spawnflags: =
  3559.       {
  3560.         txt = "&"
  3561.         typ = "X2"
  3562.         cap = "NPCs"
  3563.       }
  3564.       spawnflags: =
  3565.       {
  3566.         txt = "&"
  3567.         typ = "X4"
  3568.         cap = "Pushables"
  3569.       }
  3570.       spawnflags: =
  3571.       {
  3572.         txt = "&"
  3573.         typ = "X8"
  3574.         cap = "Physics Objects"
  3575.       }
  3576.       spawnflags: =
  3577.       {
  3578.         txt = "&"
  3579.         typ = "X16"
  3580.         cap = "Only player ally NPCs"
  3581.       }
  3582.       spawnflags: =
  3583.       {
  3584.         txt = "&"
  3585.         typ = "X32"
  3586.         cap = "Only clients in vehicles"
  3587.       }
  3588.       spawnflags: =
  3589.       {
  3590.         txt = "&"
  3591.         typ = "X64"
  3592.         cap = "Everything"
  3593.       }
  3594.       spawnflags: =
  3595.       {
  3596.         txt = "&"
  3597.         typ = "X512"
  3598.         cap = "Only clients *not* in vehicles"
  3599.       }
  3600.       filtername: =
  3601.       {
  3602.         txt = "&"
  3603.         hint = "Filter Name"
  3604.       }
  3605.       input#Toggle: =
  3606.       {
  3607.         txt = "&"
  3608.         hint = "Toggles this trigger between enabled and disabled states."
  3609.       }
  3610.       output#OnStartTouch: =
  3611.       {
  3612.         txt = "&"
  3613.         hint = "Fired when an entity starts touching this trigger. The touchin"
  3614.          "g entity must pass this trigger's filters to cause this output to fi"
  3615.          "re."
  3616.       }
  3617.     }
  3618.     t_Trigger:incl =
  3619.     {
  3620.       t_Targetname = !
  3621.       t_Parentname = !
  3622.       t_Origin = !
  3623.       t_EnableDisable = !
  3624.       t_TriggerOnce = !
  3625.       output#OnEndTouch: =
  3626.       {
  3627.         txt = "&"
  3628.         hint = "Fired when an entity stops touching this trigger. Only entitie"
  3629.          "s that passed this trigger's filters will cause this output to fire."
  3630.       }
  3631.       output#OnEndTouchAll: =
  3632.       {
  3633.         txt = "&"
  3634.         hint = "Fires when an entity stops touching this trigger, and no other"
  3635.          " entities are touching it. Only entities that passed this trigger's "
  3636.          "filters are considered."
  3637.       }
  3638.     }
  3639.     t_worldbase:incl =
  3640.     {
  3641.       message: =
  3642.       {
  3643.         txt = "&"
  3644.         hint = "Map Description / Title"
  3645.       }
  3646.       skyname: =
  3647.       {
  3648.         txt = "&"
  3649.         hint = "SkyBox Texture Name"
  3650.       }
  3651.       chaptertitle: =
  3652.       {
  3653.         txt = "&"
  3654.         hint = "Chapter Title Message"
  3655.       }
  3656.       startdark: =
  3657.       {
  3658.         txt = "&"
  3659.         hint = "Level Fade In"
  3660.         typ = "C"
  3661.         items = "No"$0D"Yes"
  3662.         values = "0"$0D"1"
  3663.       }
  3664.       gametitle: =
  3665.       {
  3666.         txt = "&"
  3667.         hint = "Display Game Title"
  3668.         typ = "C"
  3669.         items = "No"$0D"Yes"
  3670.         values = "0"$0D"1"
  3671.       }
  3672.       newunit: =
  3673.       {
  3674.         txt = "&"
  3675.         hint = "New Level Unit"
  3676.         typ = "C"
  3677.         items = "No, keep current"$0D"Yes, clear previous levels"
  3678.         values = "0"$0D"1"
  3679.       }
  3680.       maxoccludeearea: =
  3681.       {
  3682.         txt = "&"
  3683.         hint = "Max occludee area"
  3684.       }
  3685.       minoccluderarea: =
  3686.       {
  3687.         txt = "&"
  3688.         hint = "Min occluder area"
  3689.       }
  3690.       maxpropscreenwidth: =
  3691.       {
  3692.         txt = "&"
  3693.         hint = "Start Fade Pixels"
  3694.       }
  3695.       minpropscreenwidth: =
  3696.       {
  3697.         txt = "&"
  3698.         hint = "End Fade Pixels"
  3699.       }
  3700.     }
  3701.     worldspawn:form =
  3702.     {
  3703.       t_Targetname = !
  3704.       t_worldbase = !
  3705.       t_ResponseContext = !
  3706.     }
  3707.     ambient_generic:form =
  3708.     {
  3709.       t_Targetname = !
  3710.  
  3711.             t_gamesoundselect = !
  3712.  
  3713. //      message: =
  3714. //      {
  3715. //        txt = "&"
  3716. //        hint = "Sound Name"
  3717. //      }
  3718.  
  3719.       health: =
  3720.       {
  3721.         txt = "&"
  3722.         hint = "Volume"
  3723.       }
  3724.       preset: =
  3725.       {
  3726.         txt = "&"
  3727.         hint = "Dynamic Presets"
  3728.         typ = "C"
  3729.         items = "None"$0D"Huge Machine"$0D"Big Machine"$0D"Machine"$0D"Slow Fa"
  3730.          "de in"$0D"Fade in"$0D"Quick Fade in"$0D"Slow Pulse"$0D"Pulse"$0D"Qui"
  3731.          "ck pulse"$0D"Slow Oscillator"$0D"Oscillator"$0D"Quick Oscillator"$0D
  3732.          "Grunge pitch"$0D"Very low pitch"$0D"Low pitch"$0D"High pitch"$0D"Ver"
  3733.          "y high pitch"$0D"Screaming pitch"$0D"Oscillate spinup/down"$0D"Pulse"
  3734.          " spinup/down"$0D"Random pitch"$0D"Random pitch fast"$0D"Incremental "
  3735.          "Spinup"$0D"Alien"$0D"Bizzare"$0D"Planet X"$0D"Haunted"
  3736.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"1"
  3737.          "0"$0D"11"$0D"12"$0D"13"$0D"14"$0D"15"$0D"16"$0D"17"$0D"18"$0D"19"$0D
  3738.          "20"$0D"21"$0D"22"$0D"23"$0D"24"$0D"25"$0D"26"$0D"27"
  3739.       }
  3740.       volstart: =
  3741.       {
  3742.         txt = "&"
  3743.         hint = "Start Volume"
  3744.       }
  3745.       fadein: =
  3746.       {
  3747.         txt = "&"
  3748.         hint = "Fade in time (0-100)"
  3749.       }
  3750.       fadeout: =
  3751.       {
  3752.         txt = "&"
  3753.         hint = "Fade out time (0-100)"
  3754.       }
  3755.       pitch: =
  3756.       {
  3757.         txt = "&"
  3758.         hint = "Pitch"
  3759.       }
  3760.       pitchstart: =
  3761.       {
  3762.         txt = "&"
  3763.         hint = "Start Pitch"
  3764.       }
  3765.       spinup: =
  3766.       {
  3767.         txt = "&"
  3768.         hint = "Spin up time (0-100)"
  3769.       }
  3770.       spindown: =
  3771.       {
  3772.         txt = "&"
  3773.         hint = "Spin down time (0-100)"
  3774.       }
  3775.       lfotype: =
  3776.       {
  3777.         txt = "&"
  3778.         hint = "LFO type 0)off 1)sqr 2)tri 3)rnd"
  3779.       }
  3780.       lforate: =
  3781.       {
  3782.         txt = "&"
  3783.         hint = "LFO rate (0-1000)"
  3784.       }
  3785.       lfomodpitch: =
  3786.       {
  3787.         txt = "&"
  3788.         hint = "LFO mod pitch (0-100)"
  3789.       }
  3790.       lfomodvol: =
  3791.       {
  3792.         txt = "&"
  3793.         hint = "LFO mod vol (0-100)"
  3794.       }
  3795.       cspinup: =
  3796.       {
  3797.         txt = "&"
  3798.         hint = "Incremental Spinup Count"
  3799.       }
  3800.       radius: =
  3801.       {
  3802.         txt = "&"
  3803.         hint = "Max Audible Distance"
  3804.       }
  3805.       spawnflags: =
  3806.       {
  3807.         txt = "&"
  3808.         typ = "X1"
  3809.         cap = "Play everywhere"
  3810.       }
  3811.       spawnflags: =
  3812.       {
  3813.         txt = "&"
  3814.         typ = "X16"
  3815.         cap = "Start Silent"
  3816.       }
  3817.       spawnflags: =
  3818.       {
  3819.         txt = "&"
  3820.         typ = "X32"
  3821.         cap = "Is NOT Looped"
  3822.       }
  3823.       SourceEntityName: =
  3824.       {
  3825.         txt = "&"
  3826.         hint = "SourceEntityName"
  3827.       }
  3828.       input#Pitch: =
  3829.       {
  3830.         txt = "&"
  3831.         hint = "Sets the sound pitch, expressed as a range from 1 to 255, wher"
  3832.          "e 100 is the sound's default pitch."
  3833.       }
  3834.       input#PlaySound: =
  3835.       {
  3836.         txt = "&"
  3837.         hint = "Starts the sound."
  3838.       }
  3839.       input#StopSound: =
  3840.       {
  3841.         txt = "&"
  3842.         hint = "Stops the sound if it is playing."
  3843.       }
  3844.       input#ToggleSound: =
  3845.       {
  3846.         txt = "&"
  3847.         hint = "Toggles the sound between playing and stopping."
  3848.       }
  3849.       input#Volume: =
  3850.       {
  3851.         txt = "&"
  3852.         hint = "Sets the sound volume, expressed as a range from 0 to 10, wher"
  3853.          "e 10 is the loudest."
  3854.       }
  3855.     }
  3856.     func_lod:form =
  3857.     {
  3858.       t_Targetname = !
  3859.       DisappearDist: =
  3860.       {
  3861.         txt = "&"
  3862.         hint = "Disappear Distance"
  3863.       }
  3864.       Solid: =
  3865.       {
  3866.         txt = "&"
  3867.         hint = "Solid"
  3868.         typ = "C"
  3869.         items = "Solid"$0D"Nonsolid"
  3870.         values = "0"$0D"1"
  3871.       }
  3872.     }
  3873.     env_zoom:form =
  3874.     {
  3875.       t_Targetname = !
  3876.       Rate: =
  3877.       {
  3878.         txt = "&"
  3879.         hint = "Seconds to reach target"
  3880.       }
  3881.       FOV: =
  3882.       {
  3883.         txt = "&"
  3884.         hint = "Target FOV"
  3885.       }
  3886.       input#Zoom: =
  3887.       {
  3888.         txt = "&"
  3889.         hint = "Start controlling the player's FOV."
  3890.       }
  3891.       input#UnZoom: =
  3892.       {
  3893.         txt = "&"
  3894.         hint = "Stop controlling the player's FOV."
  3895.       }
  3896.       spawnflags: =
  3897.       {
  3898.         txt = "&"
  3899.         typ = "X1"
  3900.         cap = "Allow Suit Zoom"
  3901.       }
  3902.     }
  3903.     env_screenoverlay:form =
  3904.     {
  3905.       t_Targetname = !
  3906.       OverlayName1: =
  3907.       {
  3908.         txt = "&"
  3909.         hint = "Overlay Name 1"
  3910.       }
  3911.       OverlayTime1: =
  3912.       {
  3913.         txt = "&"
  3914.         hint = "Overlay Duration 1"
  3915.       }
  3916.       OverlayName2: =
  3917.       {
  3918.         txt = "&"
  3919.         hint = "Overlay Name 2"
  3920.       }
  3921.       OverlayTime2: =
  3922.       {
  3923.         txt = "&"
  3924.         hint = "Overlay Duration 2"
  3925.       }
  3926.       OverlayName3: =
  3927.       {
  3928.         txt = "&"
  3929.         hint = "Overlay Name 3"
  3930.       }
  3931.       OverlayTime3: =
  3932.       {
  3933.         txt = "&"
  3934.         hint = "Overlay Duration 3"
  3935.       }
  3936.       OverlayName4: =
  3937.       {
  3938.         txt = "&"
  3939.         hint = "Overlay Name 4"
  3940.       }
  3941.       OverlayTime4: =
  3942.       {
  3943.         txt = "&"
  3944.         hint = "Overlay Duration 4"
  3945.       }
  3946.       OverlayName5: =
  3947.       {
  3948.         txt = "&"
  3949.         hint = "Overlay Name 5"
  3950.       }
  3951.       OverlayTime5: =
  3952.       {
  3953.         txt = "&"
  3954.         hint = "Overlay Duration 5"
  3955.       }
  3956.       OverlayName6: =
  3957.       {
  3958.         txt = "&"
  3959.         hint = "Overlay Name 6"
  3960.       }
  3961.       OverlayTime6: =
  3962.       {
  3963.         txt = "&"
  3964.         hint = "Overlay Duration 6"
  3965.       }
  3966.       OverlayName7: =
  3967.       {
  3968.         txt = "&"
  3969.         hint = "Overlay Name 7"
  3970.       }
  3971.       OverlayTime7: =
  3972.       {
  3973.         txt = "&"
  3974.         hint = "Overlay Duration 7"
  3975.       }
  3976.       OverlayName8: =
  3977.       {
  3978.         txt = "&"
  3979.         hint = "Overlay Name 8"
  3980.       }
  3981.       OverlayTime8: =
  3982.       {
  3983.         txt = "&"
  3984.         hint = "Overlay Duration 8"
  3985.       }
  3986.       OverlayName9: =
  3987.       {
  3988.         txt = "&"
  3989.         hint = "Overlay Name 9"
  3990.       }
  3991.       OverlayTime9: =
  3992.       {
  3993.         txt = "&"
  3994.         hint = "Overlay Duration 9"
  3995.       }
  3996.       OverlayName10: =
  3997.       {
  3998.         txt = "&"
  3999.         hint = "Overlay Name 10"
  4000.       }
  4001.       OverlayTime10: =
  4002.       {
  4003.         txt = "&"
  4004.         hint = "Overlay Duration 10"
  4005.       }
  4006.       input#StartOverlays: =
  4007.       {
  4008.         txt = "&"
  4009.         hint = "Start displaying the first overlay."
  4010.       }
  4011.       input#StopOverlays: =
  4012.       {
  4013.         txt = "&"
  4014.         hint = "Stop displaying any overlays."
  4015.       }
  4016.       input#SwitchOverlay: =
  4017.       {
  4018.         txt = "&"
  4019.         hint = "Switch to displaying a specific overlay. Pass in the desired o"
  4020.          "verlay number in the parameter."
  4021.       }
  4022.     }
  4023.     env_texturetoggle:form =
  4024.     {
  4025.       t_Targetname = !
  4026.       target: =
  4027.       {
  4028.         txt = "&"
  4029.         hint = "Target Brush(es)."
  4030.       }
  4031.       input#IncrementTextureIndex: =
  4032.       {
  4033.         txt = "&"
  4034.         hint = "Increments target brush's current texture frame by one."
  4035.       }
  4036.       input#SetTextureIndex: =
  4037.       {
  4038.         txt = "&"
  4039.         hint = "Sets target brush's texture frame to the specified index."
  4040.       }
  4041.     }
  4042.     env_splash:form =
  4043.     {
  4044.       t_Targetname = !
  4045.       t_Angles = !
  4046.       scale: =
  4047.       {
  4048.         txt = "&"
  4049.         hint = "Scale of the splash"
  4050.       }
  4051.       input#Splash: =
  4052.       {
  4053.         txt = "&"
  4054.         hint = "Create a splash effect."
  4055.       }
  4056.       spawnflags: =
  4057.       {
  4058.         txt = "&"
  4059.         typ = "X1"
  4060.         cap = "Automatically find water surface (place entity above water)"
  4061.       }
  4062.       spawnflags: =
  4063.       {
  4064.         txt = "&"
  4065.         typ = "X2"
  4066.         cap = "Diminish with depth (diminished completely in 10 feet of water)"
  4067.       }
  4068.     }
  4069.     env_particlelight:form =
  4070.     {
  4071.       t_Parentname = !
  4072.       Color: =
  4073.       {
  4074.         txt = "&"
  4075.         hint = "Color"
  4076.       }
  4077.       Color: =
  4078.       {
  4079.         Txt = "&"
  4080.         Typ = "LU3"
  4081.         Hint = "Color"
  4082.       }
  4083.       Intensity: =
  4084.       {
  4085.         txt = "&"
  4086.         hint = "Intensity"
  4087.       }
  4088.       directional: =
  4089.       {
  4090.         txt = "&"
  4091.         hint = "Directional"
  4092.         typ = "C"
  4093.         items = "No"$0D"Yes"
  4094.         values = "0"$0D"1"
  4095.       }
  4096.       PSName: =
  4097.       {
  4098.         txt = "&"
  4099.         hint = "Particle System Entity"
  4100.       }
  4101.     }
  4102.     env_sun:form =
  4103.     {
  4104.       t_Angles = !
  4105.       target: =
  4106.       {
  4107.         txt = "&"
  4108.         hint = "Viewer entity"
  4109.       }
  4110.       use_angles: =
  4111.       {
  4112.         txt = "&"
  4113.         hint = "UseAngles"
  4114.         typ = "C"
  4115.         items = "No"$0D"Yes"
  4116.         values = "0"$0D"1"
  4117.       }
  4118.       pitch: =
  4119.       {
  4120.         txt = "&"
  4121.         hint = "Pitch"
  4122.       }
  4123.       rendercolor: =
  4124.       {
  4125.         txt = "&"
  4126.         hint = "Sun Color (R G B)"
  4127.       }
  4128.       rendercolor: =
  4129.       {
  4130.         Txt = "&"
  4131.         Typ = "LU3"
  4132.         Hint = "Sun Color (R G B)"
  4133.       }
  4134.       size: =
  4135.       {
  4136.         txt = "&"
  4137.         hint = "Size"
  4138.       }
  4139.       input#TurnOn: =
  4140.       {
  4141.         txt = "&"
  4142.         hint = "Enable sun rendering."
  4143.       }
  4144.       input#TurnOff: =
  4145.       {
  4146.         txt = "&"
  4147.         hint = "Disable sun rendering."
  4148.       }
  4149.       input#SetColor: =
  4150.       {
  4151.         txt = "&"
  4152.         hint = "Change the sun's color. Format: <Red 0-255> <Green 0-255> <Blu"
  4153.          "e 0-255>"
  4154.       }
  4155.     }
  4156.     game_ragdoll_manager:form =
  4157.     {
  4158.       t_Targetname = !
  4159.       MaxRagdollCount: =
  4160.       {
  4161.         txt = "&"
  4162.         hint = "Max Ragdoll Count"
  4163.       }
  4164.       input#SetMaxRagdollCount: =
  4165.       {
  4166.         txt = "&"
  4167.         hint = "Set the Max Ragdoll Count."
  4168.       }
  4169.     }
  4170.     env_lightglow:form =
  4171.     {
  4172.       t_Targetname = !
  4173.       t_Angles = !
  4174.       rendercolor: =
  4175.       {
  4176.         txt = "&"
  4177.         hint = "Color (R G B)"
  4178.       }
  4179.       rendercolor: =
  4180.       {
  4181.         Txt = "&"
  4182.         Typ = "LU3"
  4183.         Hint = "Color (R G B)"
  4184.       }
  4185.       VerticalGlowSize: =
  4186.       {
  4187.         txt = "&"
  4188.         hint = "Vertical Size"
  4189.       }
  4190.       HorizontalGlowSize: =
  4191.       {
  4192.         txt = "&"
  4193.         hint = "Horizontal Size"
  4194.       }
  4195.       MinDist: =
  4196.       {
  4197.         txt = "&"
  4198.         hint = "Minimum Distance"
  4199.       }
  4200.       MaxDist: =
  4201.       {
  4202.         txt = "&"
  4203.         hint = "Maximum Distance"
  4204.       }
  4205.       OuterMaxDist: =
  4206.       {
  4207.         txt = "&"
  4208.         hint = "Outer Maximum Distance"
  4209.       }
  4210.       GlowProxySize: =
  4211.       {
  4212.         txt = "&"
  4213.         hint = "Glow Proxy Geometry Size"
  4214.       }
  4215.       input#Color: =
  4216.       {
  4217.         txt = "&"
  4218.         hint = "Change the render color of the glow. Format: <Red 0-255> <Gree"
  4219.          "n 0-255> <Blue 0-255>"
  4220.       }
  4221.       spawnflags: =
  4222.       {
  4223.         txt = "&"
  4224.         typ = "X1"
  4225.         cap = "Visible only from front"
  4226.       }
  4227.     }
  4228.     env_smokestack:form =
  4229.     {
  4230.       t_Parentname = !
  4231.       t_Angles = !
  4232.       targetname: =
  4233.       {
  4234.         txt = "&"
  4235.         hint = "Name"
  4236.       }
  4237.       InitialState: =
  4238.       {
  4239.         txt = "&"
  4240.         hint = "Initial State"
  4241.         typ = "C"
  4242.         items = "Off"$0D"On"
  4243.         values = "0"$0D"1"
  4244.       }
  4245.       BaseSpread: =
  4246.       {
  4247.         txt = "&"
  4248.         hint = "Spread at the base"
  4249.       }
  4250.       SpreadSpeed: =
  4251.       {
  4252.         txt = "&"
  4253.         hint = "Spread Speed"
  4254.       }
  4255.       Speed: =
  4256.       {
  4257.         txt = "&"
  4258.         hint = "Speed"
  4259.       }
  4260.       StartSize: =
  4261.       {
  4262.         txt = "&"
  4263.         hint = "Particle start size"
  4264.       }
  4265.       EndSize: =
  4266.       {
  4267.         txt = "&"
  4268.         hint = "Particle end size"
  4269.       }
  4270.       Rate: =
  4271.       {
  4272.         txt = "&"
  4273.         hint = "Emission rate"
  4274.       }
  4275.       JetLength: =
  4276.       {
  4277.         txt = "&"
  4278.         hint = "Length of smoke trail"
  4279.       }
  4280.       WindAngle: =
  4281.       {
  4282.         txt = "&"
  4283.         hint = "Wind X/Y Angle"
  4284.       }
  4285.       WindSpeed: =
  4286.       {
  4287.         txt = "&"
  4288.         hint = "Wind Speed"
  4289.       }
  4290.       SmokeMaterial: =
  4291.       {
  4292.         txt = "&"
  4293.         hint = "Particle material"
  4294.       }
  4295.       twist: =
  4296.       {
  4297.         txt = "&"
  4298.         hint = "Twist"
  4299.       }
  4300.       rendercolor: =
  4301.       {
  4302.         txt = "&"
  4303.         hint = "Base Color (R G B)"
  4304.       }
  4305.       rendercolor: =
  4306.       {
  4307.         Txt = "&"
  4308.         Typ = "LU3"
  4309.         Hint = "Base Color (R G B)"
  4310.       }
  4311.       renderamt: =
  4312.       {
  4313.         txt = "&"
  4314.         hint = "Translucency"
  4315.       }
  4316.       input#TurnOn: =
  4317.       {
  4318.         txt = "&"
  4319.         hint = "Turn on the smokestack."
  4320.       }
  4321.       input#TurnOff: =
  4322.       {
  4323.         txt = "&"
  4324.         hint = "Turn off the smokestack."
  4325.       }
  4326.       input#Toggle: =
  4327.       {
  4328.         txt = "&"
  4329.         hint = "Toggles the smokestack between on and off state."
  4330.       }
  4331.       input#JetLength: =
  4332.       {
  4333.         txt = "&"
  4334.         hint = "Set the length of the smoke trail."
  4335.       }
  4336.       input#Rate: =
  4337.       {
  4338.         txt = "&"
  4339.         hint = "Set the rate at which to emit smoke particles (particles per s"
  4340.          "econd)."
  4341.       }
  4342.       input#Speed: =
  4343.       {
  4344.         txt = "&"
  4345.         hint = "Set the speed at which the smoke particles move after they're "
  4346.          "spawned."
  4347.       }
  4348.       input#SpreadSpeed: =
  4349.       {
  4350.         txt = "&"
  4351.         hint = "Set the amount of random spread in the velocity of the smoke p"
  4352.          "articles after they're spawned."
  4353.       }
  4354.     }
  4355.     env_fade:form =
  4356.     {
  4357.       t_Targetname = !
  4358.       spawnflags: =
  4359.       {
  4360.         txt = "&"
  4361.         typ = "X1"
  4362.         cap = "Fade From"
  4363.       }
  4364.       spawnflags: =
  4365.       {
  4366.         txt = "&"
  4367.         typ = "X2"
  4368.         cap = "Modulate"
  4369.       }
  4370.       spawnflags: =
  4371.       {
  4372.         txt = "&"
  4373.         typ = "X8"
  4374.         cap = "Stay Out"
  4375.       }
  4376.       duration: =
  4377.       {
  4378.         txt = "&"
  4379.         hint = "Duration (seconds)"
  4380.       }
  4381.       holdtime: =
  4382.       {
  4383.         txt = "&"
  4384.         hint = "Hold Fade (seconds)"
  4385.       }
  4386.       renderamt: =
  4387.       {
  4388.         txt = "&"
  4389.         hint = "Fade Alpha"
  4390.       }
  4391.       rendercolor: =
  4392.       {
  4393.         txt = "&"
  4394.         hint = "Fade Color (R G B)"
  4395.       }
  4396.       rendercolor: =
  4397.       {
  4398.         Txt = "&"
  4399.         Typ = "LU3"
  4400.         Hint = "Fade Color (R G B)"
  4401.       }
  4402.       input#Fade: =
  4403.       {
  4404.         txt = "&"
  4405.         hint = "Start the screen fade."
  4406.       }
  4407.       output#OnBeginFade: =
  4408.       {
  4409.         txt = "&"
  4410.         hint = "Fired when the fade has begun."
  4411.       }
  4412.     }
  4413.     env_player_surface_trigger:form =
  4414.     {
  4415.       t_Targetname = !
  4416.       gamematerial: =
  4417.       {
  4418.         txt = "&"
  4419.         hint = "Game Material to Watch"
  4420.         typ = "C"
  4421.         items = "None (player's in the air)"$0D"Concrete"$0D"Metal"$0D"Dirt"$0D
  4422.          "Vent"$0D"Grate"$0D"Tile"$0D"Slosh"$0D"Wood"$0D"Computer"$0D"Glass"$0D
  4423.          "Flesh"$0D"Clip"$0D"Foliage"$0D"Sand"
  4424.         values = "0"$0D"67"$0D"77"$0D"68"$0D"86"$0D"71"$0D"84"$0D"83"$0D"87"$0D
  4425.          "80"$0D"89"$0D"70"$0D"73"$0D"79"$0D"78"
  4426.       }
  4427.       input#Enable: =
  4428.       {
  4429.         txt = "&"
  4430.         hint = "Start watching the player's surface."
  4431.       }
  4432.       input#Disable: =
  4433.       {
  4434.         txt = "&"
  4435.         hint = "Stop watching the player's surface."
  4436.       }
  4437.       output#OnSurfaceChangedToTarget: =
  4438.       {
  4439.         txt = "&"
  4440.         hint = "Fired when the player moves onto the specified game material."
  4441.       }
  4442.       output#OnSurfaceChangedFromTarget: =
  4443.       {
  4444.         txt = "&"
  4445.         hint = "Fired when the player moves off the specified game material."
  4446.       }
  4447.     }
  4448.     env_tonemap_controller:form =
  4449.     {
  4450.       t_Targetname = !
  4451.       input#SetTonemapScale: =
  4452.       {
  4453.         txt = "&"
  4454.         hint = "Set the player's tonemap scale. It should be a value between 0"
  4455.          " and 2, where 0 is the eyes fully closed, 1 is use the unchanged aut"
  4456.          "oexposure (default), and 2 is the eye fully wide open."
  4457.       }
  4458.       input#BlendTonemapScale: =
  4459.       {
  4460.         txt = "&"
  4461.         hint = "Blend from the player's current tonemap scale to a new one. Th"
  4462.          "e parameter syntax is as follows: <target tonemap scale> <blend dura"
  4463.          "tion>. For example: '0.5 10' would blend from the current tonemap sc"
  4464.          "ale to 0.5 over a period of 10 seconds. Tonemap scale is a value bet"
  4465.          "ween 0 and 2, where 0 is the eyes fully closed, 1 is use the unchang"
  4466.          "ed autoexposure (default), and 2 is the eye fully wide open."
  4467.       }
  4468.     }
  4469.     func_useableladder:form =
  4470.     {
  4471.       t_Targetname = !
  4472.       t_Parentname = !
  4473.       spawnflags: =
  4474.       {
  4475.         txt = "&"
  4476.         typ = "X1"
  4477.         cap = "Fake Ladder"
  4478.       }
  4479.       point0: =
  4480.       {
  4481.         txt = "&"
  4482.         hint = "Start"
  4483.       }
  4484.       point1: =
  4485.       {
  4486.         txt = "&"
  4487.         hint = "End"
  4488.       }
  4489.       StartDisabled: =
  4490.       {
  4491.         txt = "&"
  4492.         hint = "Start Disabled"
  4493.         typ = "C"
  4494.         items = "No"$0D"Yes"
  4495.         values = "0"$0D"1"
  4496.       }
  4497.       input#Enable: =
  4498.       {
  4499.         txt = "&"
  4500.         hint = "Enable this ladder."
  4501.       }
  4502.       input#Disable: =
  4503.       {
  4504.         txt = "&"
  4505.         hint = "Disable this ladder."
  4506.       }
  4507.       output#OnPlayerGotOnLadder: =
  4508.       {
  4509.         txt = "&"
  4510.         hint = "Fired whenever a player gets on this ladder."
  4511.       }
  4512.       output#OnPlayerGotOffLadder: =
  4513.       {
  4514.         txt = "&"
  4515.         hint = "Fired whenever a player gets off this ladder."
  4516.       }
  4517.     }
  4518.     func_ladderendpoint:form =
  4519.     {
  4520.       bbox = '-16 -16 0 16 16 72'
  4521.       t_Targetname = !
  4522.       t_Parentname = !
  4523.       t_Angles = !
  4524.       target: =
  4525.       {
  4526.         txt = "&"
  4527.         hint = "Other"
  4528.       }
  4529.     }
  4530.     info_ladder_dismount:form =
  4531.     {
  4532.       bbox = '-16 -16 0 16 16 4'
  4533.       t_Parentname = !
  4534.       target: =
  4535.       {
  4536.         txt = "&"
  4537.         hint = "LadderName"
  4538.       }
  4539.     }
  4540.     func_areaportalwindow:form =
  4541.     {
  4542.       t_Targetname = !
  4543.       target: =
  4544.       {
  4545.         txt = "&"
  4546.         hint = "Rendered Window"
  4547.       }
  4548.       FadeStartDist: =
  4549.       {
  4550.         txt = "&"
  4551.         hint = "Fade Start Distance"
  4552.       }
  4553.       FadeDist: =
  4554.       {
  4555.         txt = "&"
  4556.         hint = "Fade End Distance"
  4557.       }
  4558.       TranslucencyLimit: =
  4559.       {
  4560.         txt = "&"
  4561.         hint = "Translucency limit"
  4562.       }
  4563.       BackgroundBModel: =
  4564.       {
  4565.         txt = "&"
  4566.         hint = "Foreground bmodel"
  4567.       }
  4568.     }
  4569.  
  4570.     func_wall:form =
  4571.     {
  4572.       t_Targetname = !
  4573.       t_RenderFields = !
  4574.       t_Global = !
  4575.       t_Shadow = !
  4576.       _minlight: =
  4577.       {
  4578.         txt = "&"
  4579.         hint = "Minimum Light Level"
  4580.       }
  4581.     }
  4582.  
  4583.     t_func_wall:incl =
  4584.     {
  4585.       t_Targetname = !
  4586.       t_RenderFields = !
  4587.       t_Global = !
  4588.       t_Shadow = !
  4589.       _minlight: =
  4590.       {
  4591.         txt = "&"
  4592.         hint = "Minimum Light Level"
  4593.       }
  4594.     }
  4595.  
  4596.     func_clip_vphysics:form =
  4597.     {
  4598.       t_Targetname = !
  4599.       filtername: =
  4600.       {
  4601.         txt = "&"
  4602.         hint = "Filter Name"
  4603.       }
  4604.     }
  4605.  
  4606.     func_brush:form =
  4607.     {
  4608.       t_Targetname = !
  4609.       t_Parentname = !
  4610.       t_Origin = !
  4611.       t_RenderFields = !
  4612.       t_Global = !
  4613.       t_Inputfilter = !
  4614.       t_EnableDisable = !
  4615.       t_Shadow = !
  4616.       spawnflags: =
  4617.       {
  4618.         txt = "&"
  4619.         typ = "X2"
  4620.         cap = "Ignore player +USE"
  4621.       }
  4622.       _minlight: =
  4623.       {
  4624.         txt = "&"
  4625.         hint = "Minimum Light Level"
  4626.       }
  4627.       Solidity: =
  4628.       {
  4629.         txt = "&"
  4630.         hint = "Solidity"
  4631.         typ = "C"
  4632.         items = "Toggle"$0D"Never Solid"$0D"Always Solid"
  4633.         values = "0"$0D"1"$0D"2"
  4634.       }
  4635.       excludednpc: =
  4636.       {
  4637.         txt = "&"
  4638.         hint = "NPC class excluded from collisions"
  4639.       }
  4640.       solidbsp: =
  4641.       {
  4642.         txt = "&"
  4643.         hint = "Solid BSP"
  4644.         typ = "C"
  4645.         items = "No"$0D"Yes"
  4646.         values = "0"$0D"1"
  4647.       }
  4648.     }
  4649.  
  4650.     t_func_brush:incl =
  4651.     {
  4652.       t_Targetname = !
  4653.       t_Parentname = !
  4654.       t_Origin = !
  4655.       t_RenderFields = !
  4656.       t_Global = !
  4657.       t_Inputfilter = !
  4658.       t_EnableDisable = !
  4659.       t_Shadow = !
  4660.       spawnflags: =
  4661.       {
  4662.         txt = "&"
  4663.         typ = "X2"
  4664.         cap = "Ignore player +USE"
  4665.       }
  4666.       _minlight: =
  4667.       {
  4668.         txt = "&"
  4669.         hint = "Minimum Light Level"
  4670.       }
  4671.       Solidity: =
  4672.       {
  4673.         txt = "&"
  4674.         hint = "Solidity"
  4675.         typ = "C"
  4676.         items = "Toggle"$0D"Never Solid"$0D"Always Solid"
  4677.         values = "0"$0D"1"$0D"2"
  4678.       }
  4679.       excludednpc: =
  4680.       {
  4681.         txt = "&"
  4682.         hint = "NPC class excluded from collisions"
  4683.       }
  4684.       solidbsp: =
  4685.       {
  4686.         txt = "&"
  4687.         hint = "Solid BSP"
  4688.         typ = "C"
  4689.         items = "No"$0D"Yes"
  4690.         values = "0"$0D"1"
  4691.       }
  4692.     }
  4693.  
  4694.     t_vgui_screen_base:incl =
  4695.     {
  4696.       t_Targetname = !
  4697.       t_Parentname = !
  4698.       t_Angles = !
  4699.       panelname: =
  4700.       {
  4701.         txt = "&"
  4702.         hint = "Panel Name"
  4703.       }
  4704.       overlaymaterial: =
  4705.       {
  4706.         txt = "&"
  4707.         hint = "Overlay Material"
  4708.       }
  4709.       width: =
  4710.       {
  4711.         txt = "&"
  4712.         hint = "Panel Width in World"
  4713.       }
  4714.       height: =
  4715.       {
  4716.         txt = "&"
  4717.         hint = "Panel Height in World"
  4718.       }
  4719.       input#SetActive: =
  4720.       {
  4721.         txt = "&"
  4722.         hint = "Make the vgui screen visible."
  4723.       }
  4724.       input#SetInactive: =
  4725.       {
  4726.         txt = "&"
  4727.         hint = "Make the vgui screen invisible."
  4728.       }
  4729.     }
  4730.     vgui_screen:form =
  4731.     {
  4732.       bbox = '-4 -4 -4 4 4 4'
  4733.       t_vgui_screen_base = !
  4734.     }
  4735.     cycler:form =
  4736.     {
  4737.       t_Targetname = !
  4738.       t_Parentname = !
  4739.       t_Angles = !
  4740.       t_RenderFxChoices = !
  4741.       t_RenderFields = !
  4742.       spawnflags: =
  4743.       {
  4744.         txt = "&"
  4745.         typ = "X1"
  4746.         cap = "Not Solid"
  4747.       }
  4748.       model: =
  4749.       {
  4750.         txt = "&"
  4751.         hint = "Model"
  4752.         typ = "B"
  4753.         Cap = "models..."
  4754.         form = "t_models_hl2_form:form"
  4755.       }
  4756.       skin: =
  4757.       {
  4758.         txt = "&"
  4759.         hint = "Skin"
  4760.       }
  4761.       sequence: =
  4762.       {
  4763.         txt = "&"
  4764.         hint = "Sequence"
  4765.       }
  4766.       input#SetSequence: =
  4767.       {
  4768.         txt = "&"
  4769.         hint = "Sets the cycler's sequence."
  4770.       }
  4771.       input#Alpha: =
  4772.       {
  4773.         txt = "&"
  4774.         hint = "Sets the cycler's alpha value."
  4775.       }
  4776.     }
  4777.     t_gibshooterbase:incl =
  4778.     {
  4779.       t_Targetname = !
  4780.       t_Parentname = !
  4781.       angles: =
  4782.       {
  4783.         txt = "&"
  4784.         hint = "Gib Direction (Pitch Yaw Roll)"
  4785.       }
  4786.       m_iGibs: =
  4787.       {
  4788.         txt = "&"
  4789.         hint = "Number of Gibs"
  4790.       }
  4791.       delay: =
  4792.       {
  4793.         txt = "&"
  4794.         hint = "Delay between shots"
  4795.       }
  4796.       gibangles: =
  4797.       {
  4798.         txt = "&"
  4799.         hint = "Gib Angles (Pitch Yaw Roll)"
  4800.       }
  4801.       m_flVelocity: =
  4802.       {
  4803.         txt = "&"
  4804.         hint = "Gib Velocity"
  4805.       }
  4806.       m_flVariance: =
  4807.       {
  4808.         txt = "&"
  4809.         hint = "Course Variance"
  4810.       }
  4811.       m_flGibLife: =
  4812.       {
  4813.         txt = "&"
  4814.         hint = "Gib Life"
  4815.       }
  4816.       spawnflags: =
  4817.       {
  4818.         txt = "&"
  4819.         typ = "X1"
  4820.         cap = "Repeatable"
  4821.       }
  4822.       input#Shoot: =
  4823.       {
  4824.         txt = "&"
  4825.         hint = "Force the gibshooter to create and shoot a gib."
  4826.       }
  4827.     }
  4828.     env_beam:form =
  4829.     {
  4830.       bbox = '-4 -4 -4 4 4 4'
  4831.       t_Targetname = !
  4832.       t_Parentname = !
  4833.       t_RenderFxChoices = !
  4834.       renderamt: =
  4835.       {
  4836.         txt = "&"
  4837.         hint = "Brightness (1 - 255)"
  4838.       }
  4839.       rendercolor: =
  4840.       {
  4841.         txt = "&"
  4842.         hint = "Beam Color (R G B)"
  4843.       }
  4844.       rendercolor: =
  4845.       {
  4846.         Txt = "&"
  4847.         Typ = "LU3"
  4848.         Hint = "Beam Color (R G B)"
  4849.       }
  4850.       Radius: =
  4851.       {
  4852.         txt = "&"
  4853.         hint = "Radius"
  4854.       }
  4855.       life: =
  4856.       {
  4857.         txt = "&"
  4858.         hint = "Life (seconds 0 = infinite)"
  4859.       }
  4860.       BoltWidth: =
  4861.       {
  4862.         txt = "&"
  4863.         hint = "Width of beam"
  4864.       }
  4865.       NoiseAmplitude: =
  4866.       {
  4867.         txt = "&"
  4868.         hint = "Amount of noise (0-255)"
  4869.       }
  4870.       texture: =
  4871.       {
  4872.         txt = "&"
  4873.         hint = "Sprite Name"
  4874.       }
  4875.       TextureScroll: =
  4876.       {
  4877.         txt = "&"
  4878.         hint = "Texture Scroll Rate (0-100)"
  4879.       }
  4880.       framerate: =
  4881.       {
  4882.         txt = "&"
  4883.         hint = "Frames per 10 seconds"
  4884.       }
  4885.       framestart: =
  4886.       {
  4887.         txt = "&"
  4888.         hint = "Starting Frame"
  4889.       }
  4890.       StrikeTime: =
  4891.       {
  4892.         txt = "&"
  4893.         hint = "Strike again time (secs)"
  4894.       }
  4895.       damage: =
  4896.       {
  4897.         txt = "&"
  4898.         hint = "Damage / second"
  4899.       }
  4900.       LightningStart: =
  4901.       {
  4902.         txt = "&"
  4903.         hint = "Start Entity"
  4904.       }
  4905.       LightningEnd: =
  4906.       {
  4907.         txt = "&"
  4908.         hint = "Ending Entity"
  4909.       }
  4910.       spawnflags: =
  4911.       {
  4912.         txt = "&"
  4913.         typ = "X1"
  4914.         cap = "Start On"
  4915.       }
  4916.       spawnflags: =
  4917.       {
  4918.         txt = "&"
  4919.         typ = "X2"
  4920.         cap = "Toggle"
  4921.       }
  4922.       spawnflags: =
  4923.       {
  4924.         txt = "&"
  4925.         typ = "X4"
  4926.         cap = "Random Strike"
  4927.       }
  4928.       spawnflags: =
  4929.       {
  4930.         txt = "&"
  4931.         typ = "X8"
  4932.         cap = "Ring"
  4933.       }
  4934.       spawnflags: =
  4935.       {
  4936.         txt = "&"
  4937.         typ = "X16"
  4938.         cap = "StartSparks"
  4939.       }
  4940.       spawnflags: =
  4941.       {
  4942.         txt = "&"
  4943.         typ = "X32"
  4944.         cap = "EndSparks"
  4945.       }
  4946.       spawnflags: =
  4947.       {
  4948.         txt = "&"
  4949.         typ = "X64"
  4950.         cap = "Decal End"
  4951.       }
  4952.       spawnflags: =
  4953.       {
  4954.         txt = "&"
  4955.         typ = "X128"
  4956.         cap = "Shade Start"
  4957.       }
  4958.       spawnflags: =
  4959.       {
  4960.         txt = "&"
  4961.         typ = "X256"
  4962.         cap = "Shade End"
  4963.       }
  4964.       spawnflags: =
  4965.       {
  4966.         txt = "&"
  4967.         typ = "X512"
  4968.         cap = "Taper Out"
  4969.       }
  4970.       TouchType: =
  4971.       {
  4972.         txt = "&"
  4973.         hint = "Touch Type (tripwire)"
  4974.         typ = "C"
  4975.         items = "Not a tripwire"$0D"Player Only"$0D"NPC Only"$0D"Player or NPC"
  4976.          $0D"Player or NPC or Physprop"
  4977.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"
  4978.       }
  4979.       filtername: =
  4980.       {
  4981.         txt = "&"
  4982.         hint = "Filter Name"
  4983.       }
  4984.       input#TurnOn: =
  4985.       {
  4986.         txt = "&"
  4987.         hint = "Turns the beam on."
  4988.       }
  4989.       input#TurnOff: =
  4990.       {
  4991.         txt = "&"
  4992.         hint = "Turns the beam off."
  4993.       }
  4994.       input#Toggle: =
  4995.       {
  4996.         txt = "&"
  4997.         hint = "Toggles the beam between on and off."
  4998.       }
  4999.       input#StrikeOnce: =
  5000.       {
  5001.         txt = "&"
  5002.         hint = "Causes the beam to strike once. It will stay on for its set Li"
  5003.          "fe and then turn off (it will never turn off if Life is set to zero)"
  5004.          "."
  5005.       }
  5006.       input#Alpha: =
  5007.       {
  5008.         txt = "&"
  5009.         hint = "Sets the beam's alpha (0 - 255)."
  5010.       }
  5011.       input#Color: =
  5012.       {
  5013.         txt = "&"
  5014.         hint = "Sets the beam's render color (R G B)."
  5015.       }
  5016.       input#Amplitude: =
  5017.       {
  5018.         txt = "&"
  5019.         hint = "Set the amplitude of beam noise (0 - 255)."
  5020.       }
  5021.       input#ScrollSpeed: =
  5022.       {
  5023.         txt = "&"
  5024.         hint = "Set the scroll speed in units per second (0 - 100)."
  5025.       }
  5026.       input#Width: =
  5027.       {
  5028.         txt = "&"
  5029.         hint = "Set the width of the beam, in pixels."
  5030.       }
  5031.       output#OnTouchedByEntity: =
  5032.       {
  5033.         txt = "&"
  5034.         hint = "Fired when an entity touches the beam. Only fired if the entit"
  5035.          "y passes the 'Touch Type' choice."
  5036.       }
  5037.     }
  5038.     env_beverage:form =
  5039.     {
  5040.       bbox = '-4 -4 -4 4 4 4'
  5041.       t_Targetname = !
  5042.       t_Parentname = !
  5043.       health: =
  5044.       {
  5045.         txt = "&"
  5046.         hint = "Capacity"
  5047.       }
  5048.       beveragetype: =
  5049.       {
  5050.         txt = "&"
  5051.         hint = "Beverage Type"
  5052.         typ = "C"
  5053.         items = "Coca-Cola"$0D"Sprite"$0D"Diet Coke"$0D"Orange"$0D"Surge"$0D"M"
  5054.          "oxie"$0D"Random"
  5055.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"
  5056.       }
  5057.       input#Activate: =
  5058.       {
  5059.         txt = "&"
  5060.         hint = "Enable this dispenser."
  5061.       }
  5062.     }
  5063.     env_embers:form =
  5064.     {
  5065.       t_Targetname = !
  5066.       t_Parentname = !
  5067.       t_Angles = !
  5068.       particletype: =
  5069.       {
  5070.         txt = "&"
  5071.         hint = "Ember type"
  5072.         typ = "C"
  5073.         items = "Normal"$0D"Smooth Fade"$0D"Pulled"
  5074.         values = "0"$0D"1"$0D"2"
  5075.       }
  5076.       density: =
  5077.       {
  5078.         txt = "&"
  5079.         hint = "Density (particles per second)"
  5080.       }
  5081.       lifetime: =
  5082.       {
  5083.         txt = "&"
  5084.         hint = "Particle Lifetime (seconds)"
  5085.       }
  5086.       speed: =
  5087.       {
  5088.         txt = "&"
  5089.         hint = "Particle Speed (units per second)"
  5090.       }
  5091.       rendercolor: =
  5092.       {
  5093.         txt = "&"
  5094.         hint = "Ember Color (R G B)"
  5095.       }
  5096.       rendercolor: =
  5097.       {
  5098.         Txt = "&"
  5099.         Typ = "LU3"
  5100.         Hint = "Ember Color (R G B)"
  5101.       }
  5102.       spawnflags: =
  5103.       {
  5104.         txt = "&"
  5105.         typ = "X1"
  5106.         cap = "Start On"
  5107.       }
  5108.       spawnflags: =
  5109.       {
  5110.         txt = "&"
  5111.         typ = "X2"
  5112.         cap = "Toggle"
  5113.       }
  5114.     }
  5115.     env_funnel:form =
  5116.     {
  5117.       bbox = '-16 -16 -16 16 16 16'
  5118.       t_Targetname = !
  5119.       t_Parentname = !
  5120.       spawnflags: =
  5121.       {
  5122.         txt = "&"
  5123.         typ = "X1"
  5124.         cap = "Reverse"
  5125.       }
  5126.     }
  5127.     env_blood:form =
  5128.     {
  5129.       bbox = '-16 -16 -16 16 16 16'
  5130.       t_Targetname = !
  5131.       t_Parentname = !
  5132.       spraydir: =
  5133.       {
  5134.         txt = "&"
  5135.         hint = "Spray Direction (Pitch Yaw Roll)"
  5136.       }
  5137.       color: =
  5138.       {
  5139.         txt = "&"
  5140.         hint = "Blood Color"
  5141.         typ = "C"
  5142.         items = "Red (Human)"$0D"Yellow (Alien)"
  5143.         values = "0"$0D"1"
  5144.       }
  5145.       amount: =
  5146.       {
  5147.         txt = "&"
  5148.         hint = "Amount of blood (damage to simulate)"
  5149.       }
  5150.       spawnflags: =
  5151.       {
  5152.         txt = "&"
  5153.         typ = "X1"
  5154.         cap = "Random Direction"
  5155.       }
  5156.       spawnflags: =
  5157.       {
  5158.         txt = "&"
  5159.         typ = "X2"
  5160.         cap = "Blood Stream"
  5161.       }
  5162.       spawnflags: =
  5163.       {
  5164.         txt = "&"
  5165.         typ = "X4"
  5166.         cap = "On Player"
  5167.       }
  5168.       spawnflags: =
  5169.       {
  5170.         txt = "&"
  5171.         typ = "X8"
  5172.         cap = "Spray decals"
  5173.       }
  5174.       input#EmitBlood: =
  5175.       {
  5176.         txt = "&"
  5177.         hint = "Triggers the blood effect."
  5178.       }
  5179.     }
  5180.     env_bubbles:form =
  5181.     {
  5182.       t_Targetname = !
  5183.       t_Parentname = !
  5184.       density: =
  5185.       {
  5186.         txt = "&"
  5187.         hint = "Bubble density"
  5188.       }
  5189.       frequency: =
  5190.       {
  5191.         txt = "&"
  5192.         hint = "Bubble frequency"
  5193.       }
  5194.       current: =
  5195.       {
  5196.         txt = "&"
  5197.         hint = "Speed of Current"
  5198.       }
  5199.       spawnflags: =
  5200.       {
  5201.         txt = "&"
  5202.         typ = "X1"
  5203.         cap = "Start Off"
  5204.       }
  5205.       input#Activate: =
  5206.       {
  5207.         txt = "&"
  5208.         hint = "Activates the bubbles."
  5209.       }
  5210.       input#Deactivate: =
  5211.       {
  5212.         txt = "&"
  5213.         hint = "Deactivates the bubbles."
  5214.       }
  5215.       input#Toggle: =
  5216.       {
  5217.         txt = "&"
  5218.         hint = "Toggles the bubbles on and off."
  5219.       }
  5220.       input#SetDensity: =
  5221.       {
  5222.         txt = "&"
  5223.         hint = "Sets the bubble density."
  5224.       }
  5225.       input#SetFrequency: =
  5226.       {
  5227.         txt = "&"
  5228.         hint = "Sets bubble emission rate in bubbles per second."
  5229.       }
  5230.       input#SetCurrent: =
  5231.       {
  5232.         txt = "&"
  5233.         hint = "Sets current speed in inches per second."
  5234.       }
  5235.     }
  5236.     env_explosion:form =
  5237.     {
  5238.       t_Targetname = !
  5239.       t_Parentname = !
  5240.       iMagnitude: =
  5241.       {
  5242.         txt = "&"
  5243.         hint = "Magnitude"
  5244.       }
  5245.       iRadiusOverride: =
  5246.       {
  5247.         txt = "&"
  5248.         hint = "Radius Override"
  5249.       }
  5250.       fireballsprite: =
  5251.       {
  5252.         txt = "&"
  5253.         hint = "Fireball Sprite"
  5254.       }
  5255.       rendermode: =
  5256.       {
  5257.         txt = "&"
  5258.         hint = "Render Mode"
  5259.         typ = "C"
  5260.         items = "Normal"$0D"Solid"$0D"Additive"
  5261.         values = "0"$0D"4"$0D"5"
  5262.       }
  5263.       spawnflags: =
  5264.       {
  5265.         txt = "&"
  5266.         typ = "X1"
  5267.         cap = "No Damage"
  5268.       }
  5269.       spawnflags: =
  5270.       {
  5271.         txt = "&"
  5272.         typ = "X2"
  5273.         cap = "Repeatable"
  5274.       }
  5275.       spawnflags: =
  5276.       {
  5277.         txt = "&"
  5278.         typ = "X4"
  5279.         cap = "No Fireball"
  5280.       }
  5281.       spawnflags: =
  5282.       {
  5283.         txt = "&"
  5284.         typ = "X8"
  5285.         cap = "No Smoke"
  5286.       }
  5287.       spawnflags: =
  5288.       {
  5289.         txt = "&"
  5290.         typ = "X16"
  5291.         cap = "No Decal"
  5292.       }
  5293.       spawnflags: =
  5294.       {
  5295.         txt = "&"
  5296.         typ = "X32"
  5297.         cap = "No Sparks"
  5298.       }
  5299.       spawnflags: =
  5300.       {
  5301.         txt = "&"
  5302.         typ = "X64"
  5303.         cap = "No Sound"
  5304.       }
  5305.       spawnflags: =
  5306.       {
  5307.         txt = "&"
  5308.         typ = "X128"
  5309.         cap = "Random Orientation"
  5310.       }
  5311.       spawnflags: =
  5312.       {
  5313.         txt = "&"
  5314.         typ = "X256"
  5315.         cap = "No Fireball Smoke"
  5316.       }
  5317.       spawnflags: =
  5318.       {
  5319.         txt = "&"
  5320.         typ = "X512"
  5321.         cap = "No particles"
  5322.       }
  5323.       spawnflags: =
  5324.       {
  5325.         txt = "&"
  5326.         typ = "X1024"
  5327.         cap = "No DLights"
  5328.       }
  5329.       spawnflags: =
  5330.       {
  5331.         txt = "&"
  5332.         typ = "X2048"
  5333.         cap = "Don't clamp Min"
  5334.       }
  5335.       spawnflags: =
  5336.       {
  5337.         txt = "&"
  5338.         typ = "X4096"
  5339.         cap = "Don't clamp Max"
  5340.       }
  5341.       input#Explode: =
  5342.       {
  5343.         txt = "&"
  5344.         hint = "Triggers the explosion."
  5345.       }
  5346.     }
  5347.     env_smoketrail:form =
  5348.     {
  5349.       bbox = '-8 -8 -8 8 8 8'
  5350.       t_Targetname = !
  5351.       t_Parentname = !
  5352.       opacity: =
  5353.       {
  5354.         txt = "&"
  5355.         hint = "Sprite Opacity"
  5356.       }
  5357.       spawnrate: =
  5358.       {
  5359.         txt = "&"
  5360.         hint = "Spawn Rate"
  5361.       }
  5362.       lifetime: =
  5363.       {
  5364.         txt = "&"
  5365.         hint = "Particle Life Time"
  5366.       }
  5367.       startcolor: =
  5368.       {
  5369.         txt = "&"
  5370.         hint = "Start Color"
  5371.       }
  5372.       startcolor: =
  5373.       {
  5374.         Txt = "&"
  5375.         Typ = "LU3"
  5376.         Hint = "Start Color"
  5377.       }
  5378.       endcolor: =
  5379.       {
  5380.         txt = "&"
  5381.         hint = "End Color"
  5382.       }
  5383.       endcolor: =
  5384.       {
  5385.         Txt = "&"
  5386.         Typ = "LU3"
  5387.         Hint = "End Color"
  5388.       }
  5389.       emittime: =
  5390.       {
  5391.         txt = "&"
  5392.         hint = "Emitter Life Time"
  5393.       }
  5394.       minspeed: =
  5395.       {
  5396.         txt = "&"
  5397.         hint = "Minimum Random Speed"
  5398.       }
  5399.       maxspeed: =
  5400.       {
  5401.         txt = "&"
  5402.         hint = "Maximum Random Speed"
  5403.       }
  5404.       mindirectedspeed: =
  5405.       {
  5406.         txt = "&"
  5407.         hint = "Minimum Directed Speed"
  5408.       }
  5409.       maxdirectedspeed: =
  5410.       {
  5411.         txt = "&"
  5412.         hint = "Maximum Directed Speed"
  5413.       }
  5414.       startsize: =
  5415.       {
  5416.         txt = "&"
  5417.         hint = "Starting particle size"
  5418.       }
  5419.       endsize: =
  5420.       {
  5421.         txt = "&"
  5422.         hint = "Ending particle size"
  5423.       }
  5424.       spawnradius: =
  5425.       {
  5426.         txt = "&"
  5427.         hint = "Spawn radius"
  5428.       }
  5429.       firesprite: =
  5430.       {
  5431.         txt = "&"
  5432.         hint = "Fire Sprite"
  5433.       }
  5434.       smokesprite: =
  5435.       {
  5436.         txt = "&"
  5437.         hint = "Smoke Puff"
  5438.       }
  5439.     }
  5440.     env_physexplosion:form =
  5441.     {
  5442.       t_Targetname = !
  5443.       t_Parentname = !
  5444.       magnitude: =
  5445.       {
  5446.         txt = "&"
  5447.         hint = "Magnitude"
  5448.       }
  5449.       radius: =
  5450.       {
  5451.         txt = "&"
  5452.         hint = "Clamp Radius (0 = auto)"
  5453.       }
  5454.       targetentityname: =
  5455.       {
  5456.         txt = "&"
  5457.         hint = "Limit to Entity"
  5458.       }
  5459.       spawnflags: =
  5460.       {
  5461.         txt = "&"
  5462.         typ = "X1"
  5463.         cap = "No Damage - Only Force"
  5464.       }
  5465.       input#Explode: =
  5466.       {
  5467.         txt = "&"
  5468.         hint = "Trigger the explosion."
  5469.       }
  5470.     }
  5471.     env_physimpact:form =
  5472.     {
  5473.       t_Targetname = !
  5474.       t_Parentname = !
  5475.       angles: =
  5476.       {
  5477.         txt = "&"
  5478.         hint = "Pitch Yaw Roll (Y Z X)"
  5479.       }
  5480.       magnitude: =
  5481.       {
  5482.         txt = "&"
  5483.         hint = "Magnitude"
  5484.       }
  5485.       distance: =
  5486.       {
  5487.         txt = "&"
  5488.         hint = "Distance"
  5489.       }
  5490.       directionentityname: =
  5491.       {
  5492.         txt = "&"
  5493.         hint = "Point to Entity"
  5494.       }
  5495.       spawnflags: =
  5496.       {
  5497.         txt = "&"
  5498.         typ = "X1"
  5499.         cap = "No fall-off"
  5500.       }
  5501.       spawnflags: =
  5502.       {
  5503.         txt = "&"
  5504.         typ = "X2"
  5505.         cap = "Infinite Length"
  5506.       }
  5507.       spawnflags: =
  5508.       {
  5509.         txt = "&"
  5510.         typ = "X4"
  5511.         cap = "Ignore Mass"
  5512.       }
  5513.       input#Impact: =
  5514.       {
  5515.         txt = "&"
  5516.         hint = "Trigger the impact"
  5517.       }
  5518.     }
  5519.     env_fire:form =
  5520.     {
  5521.       t_Targetname = !
  5522.       t_Parentname = !
  5523.       t_EnableDisable = !
  5524.       health: =
  5525.       {
  5526.         txt = "&"
  5527.         hint = "Duration"
  5528.       }
  5529.       firesize: =
  5530.       {
  5531.         txt = "&"
  5532.         hint = "Size"
  5533.       }
  5534.       fireattack: =
  5535.       {
  5536.         txt = "&"
  5537.         hint = "Attack"
  5538.       }
  5539.       firetype: =
  5540.       {
  5541.         txt = "&"
  5542.         hint = "Type"
  5543.         typ = "C"
  5544.         items = "Natural"$0D"Plasma"
  5545.         values = "0"$0D"1"
  5546.       }
  5547.       spawnflags: =
  5548.       {
  5549.         txt = "&"
  5550.         typ = "X1"
  5551.         cap = "Infinite Duration"
  5552.       }
  5553.       spawnflags: =
  5554.       {
  5555.         txt = "&"
  5556.         typ = "X2"
  5557.         cap = "Smokeless"
  5558.       }
  5559.       spawnflags: =
  5560.       {
  5561.         txt = "&"
  5562.         typ = "X4"
  5563.         cap = "Start On"
  5564.       }
  5565.       spawnflags: =
  5566.       {
  5567.         txt = "&"
  5568.         typ = "X8"
  5569.         cap = "Start Full"
  5570.       }
  5571.       spawnflags: =
  5572.       {
  5573.         txt = "&"
  5574.         typ = "X16"
  5575.         cap = "Don't drop"
  5576.       }
  5577.       spawnflags: =
  5578.       {
  5579.         txt = "&"
  5580.         typ = "X32"
  5581.         cap = "No glow"
  5582.       }
  5583.       spawnflags: =
  5584.       {
  5585.         txt = "&"
  5586.         typ = "X128"
  5587.         cap = "Delete when out"
  5588.       }
  5589.       ignitionpoint: =
  5590.       {
  5591.         txt = "&"
  5592.         hint = "Ignition Point"
  5593.       }
  5594.       damagescale: =
  5595.       {
  5596.         txt = "&"
  5597.         hint = "Damage Scale"
  5598.       }
  5599.       input#StartFire: =
  5600.       {
  5601.         txt = "&"
  5602.         hint = "Start the fire."
  5603.       }
  5604.       input#Extinguish: =
  5605.       {
  5606.         txt = "&"
  5607.         hint = "Puts out the fire permanently in the number of seconds specifi"
  5608.          "ed."
  5609.       }
  5610.       input#ExtinguishTemporary: =
  5611.       {
  5612.         txt = "&"
  5613.         hint = "Puts out the fire temporarily in the number of seconds specifi"
  5614.          "ed."
  5615.       }
  5616.       output#OnIgnited: =
  5617.       {
  5618.         txt = "&"
  5619.         hint = "Fires when the fire is first ignited."
  5620.       }
  5621.       output#OnExtinguished: =
  5622.       {
  5623.         txt = "&"
  5624.         hint = "Fires when the fire is fully extinguished."
  5625.       }
  5626.     }
  5627.     env_firesource:form =
  5628.     {
  5629.       t_Targetname = !
  5630.       t_Parentname = !
  5631.       spawnflags: =
  5632.       {
  5633.         txt = "&"
  5634.         typ = "X1"
  5635.         cap = "Start On"
  5636.       }
  5637.       fireradius: =
  5638.       {
  5639.         txt = "&"
  5640.         hint = "Radius"
  5641.       }
  5642.       firedamage: =
  5643.       {
  5644.         txt = "&"
  5645.         hint = "Intensity / Damage"
  5646.       }
  5647.       input#Enable: =
  5648.       {
  5649.         txt = "&"
  5650.         hint = "Enable fire source."
  5651.       }
  5652.       input#Disable: =
  5653.       {
  5654.         txt = "&"
  5655.         hint = "Disable fire source."
  5656.       }
  5657.     }
  5658.     env_firesensor:form =
  5659.     {
  5660.       bbox = '-4 -4 -4 4 4 4'
  5661.       t_Targetname = !
  5662.       t_Parentname = !
  5663.       spawnflags: =
  5664.       {
  5665.         txt = "&"
  5666.         typ = "X1"
  5667.         cap = "Start On"
  5668.       }
  5669.       fireradius: =
  5670.       {
  5671.         txt = "&"
  5672.         hint = "Radius"
  5673.       }
  5674.       heatlevel: =
  5675.       {
  5676.         txt = "&"
  5677.         hint = "Heat level"
  5678.       }
  5679.       heattime: =
  5680.       {
  5681.         txt = "&"
  5682.         hint = "Time at level"
  5683.       }
  5684.       input#Enable: =
  5685.       {
  5686.         txt = "&"
  5687.         hint = "Enable fire sensor."
  5688.       }
  5689.       input#Disable: =
  5690.       {
  5691.         txt = "&"
  5692.         hint = "Disable fire sensor."
  5693.       }
  5694.       output#OnHeatLevelStart: =
  5695.       {
  5696.         txt = "&"
  5697.         hint = "Fires when the heat level has been sustained for the specified"
  5698.          " length of time."
  5699.       }
  5700.       output#OnHeatLevelEnd: =
  5701.       {
  5702.         txt = "&"
  5703.         hint = "Fires when the heat level drops below the target level."
  5704.       }
  5705.     }
  5706.     env_entity_igniter:form =
  5707.     {
  5708.       bbox = '-4 -4 -4 4 4 4'
  5709.       t_Targetname = !
  5710.       target: =
  5711.       {
  5712.         txt = "&"
  5713.         hint = "Entity to ignite"
  5714.       }
  5715.       lifetime: =
  5716.       {
  5717.         txt = "&"
  5718.         hint = "Lifetime in seconds"
  5719.       }
  5720.       input#Ignite: =
  5721.       {
  5722.         txt = "&"
  5723.         hint = "Ignite the target entity."
  5724.       }
  5725.     }
  5726.     env_fog_controller:form =
  5727.     {
  5728.       t_Targetname = !
  5729.       t_DXLevelChoice = !
  5730.       t_Angles = !
  5731.       input#SetStartDist: =
  5732.       {
  5733.         txt = "&"
  5734.         hint = "Set the fog start distance."
  5735.       }
  5736.       input#SetEndDist: =
  5737.       {
  5738.         txt = "&"
  5739.         hint = "Set the fog end distance."
  5740.       }
  5741.       input#TurnOn: =
  5742.       {
  5743.         txt = "&"
  5744.         hint = "Turn the fog on."
  5745.       }
  5746.       input#TurnOff: =
  5747.       {
  5748.         txt = "&"
  5749.         hint = "Turn the fog off."
  5750.       }
  5751.       input#SetColor: =
  5752.       {
  5753.         txt = "&"
  5754.         hint = "Set the primary fog color."
  5755.       }
  5756.       input#SetColorSecondary: =
  5757.       {
  5758.         txt = "&"
  5759.         hint = "Set the secondary fog color."
  5760.       }
  5761.       input#SetFarZ: =
  5762.       {
  5763.         txt = "&"
  5764.         hint = "Set the far clip plane distance."
  5765.       }
  5766.       input#SetAngles: =
  5767.       {
  5768.         txt = "&"
  5769.         hint = "Set the angles to use for the secondary fog direction."
  5770.       }
  5771.       fogenable: =
  5772.       {
  5773.         txt = "&"
  5774.         hint = "Fog Enable"
  5775.         typ = "C"
  5776.         items = "No"$0D"Yes"
  5777.         values = "0"$0D"1"
  5778.       }
  5779.       fogblend: =
  5780.       {
  5781.         txt = "&"
  5782.         hint = "Fog Blend"
  5783.         typ = "C"
  5784.         items = "No"$0D"Yes"
  5785.         values = "0"$0D"1"
  5786.       }
  5787.       use_angles: =
  5788.       {
  5789.         txt = "&"
  5790.         hint = "Use Angles for Fog Dir"
  5791.         typ = "C"
  5792.         items = "No"$0D"Yes"
  5793.         values = "0"$0D"1"
  5794.       }
  5795.       fogcolor: =
  5796.       {
  5797.         txt = "&"
  5798.         hint = "Primary Fog Color"
  5799.       }
  5800.       fogcolor: =
  5801.       {
  5802.         Txt = "&"
  5803.         Typ = "LU3"
  5804.         Hint = "Primary Fog Color"
  5805.       }
  5806.       fogcolor2: =
  5807.       {
  5808.         txt = "&"
  5809.         hint = "Secondary Fog Color"
  5810.       }
  5811.       fogcolor2: =
  5812.       {
  5813.         Txt = "&"
  5814.         Typ = "LU3"
  5815.         Hint = "Secondary Fog Color"
  5816.       }
  5817.       fogdir: =
  5818.       {
  5819.         txt = "&"
  5820.         hint = "Primary Fog Direction"
  5821.       }
  5822.       fogstart: =
  5823.       {
  5824.         txt = "&"
  5825.         hint = "Fog Start"
  5826.       }
  5827.       fogend: =
  5828.       {
  5829.         txt = "&"
  5830.         hint = "Fog End"
  5831.       }
  5832.       farz: =
  5833.       {
  5834.         txt = "&"
  5835.         hint = "Far Z Clip Plane"
  5836.       }
  5837.     }
  5838.     env_steam:form =
  5839.     {
  5840.       t_Targetname = !
  5841.       t_Parentname = !
  5842.       t_Angles = !
  5843.       spawnflags: =
  5844.       {
  5845.         txt = "&"
  5846.         typ = "X1"
  5847.         cap = "Emissive"
  5848.       }
  5849.       InitialState: =
  5850.       {
  5851.         txt = "&"
  5852.         hint = "Initial State"
  5853.         typ = "C"
  5854.         items = "Off"$0D"On"
  5855.         values = "0"$0D"1"
  5856.       }
  5857.       type: =
  5858.       {
  5859.         txt = "&"
  5860.         hint = "Particle Type"
  5861.         typ = "C"
  5862.         items = "Normal"$0D"Heat Wave"
  5863.         values = "0"$0D"1"
  5864.       }
  5865.       SpreadSpeed: =
  5866.       {
  5867.         txt = "&"
  5868.         hint = "Spread Speed"
  5869.       }
  5870.       Speed: =
  5871.       {
  5872.         txt = "&"
  5873.         hint = "Speed"
  5874.       }
  5875.       StartSize: =
  5876.       {
  5877.         txt = "&"
  5878.         hint = "Particle start size"
  5879.       }
  5880.       EndSize: =
  5881.       {
  5882.         txt = "&"
  5883.         hint = "Particle end size"
  5884.       }
  5885.       Rate: =
  5886.       {
  5887.         txt = "&"
  5888.         hint = "Emission rate"
  5889.       }
  5890.       rendercolor: =
  5891.       {
  5892.         txt = "&"
  5893.         hint = "Color (R G B)"
  5894.       }
  5895.       rendercolor: =
  5896.       {
  5897.         Txt = "&"
  5898.         Typ = "LU3"
  5899.         Hint = "Color (R G B)"
  5900.       }
  5901.       JetLength: =
  5902.       {
  5903.         txt = "&"
  5904.         hint = "Length of steam jet"
  5905.       }
  5906.       renderamt: =
  5907.       {
  5908.         txt = "&"
  5909.         hint = "Translucency"
  5910.       }
  5911.       input#TurnOn: =
  5912.       {
  5913.         txt = "&"
  5914.         hint = "Turns the steam jet on."
  5915.       }
  5916.       input#TurnOff: =
  5917.       {
  5918.         txt = "&"
  5919.         hint = "Turns the steam jet off."
  5920.       }
  5921.       input#Toggle: =
  5922.       {
  5923.         txt = "&"
  5924.         hint = "Toggles the steam jet between on and off."
  5925.       }
  5926.       input#JetLength: =
  5927.       {
  5928.         txt = "&"
  5929.         hint = "Sets the length of steam jet."
  5930.       }
  5931.       input#Rate: =
  5932.       {
  5933.         txt = "&"
  5934.         hint = "Sets the particle emission rate in particles per second."
  5935.       }
  5936.       input#Speed: =
  5937.       {
  5938.         txt = "&"
  5939.         hint = "Sets the default speed of the particles in units per second."
  5940.       }
  5941.       input#SpreadSpeed: =
  5942.       {
  5943.         txt = "&"
  5944.         hint = "Sets the spread speed in units per second."
  5945.       }
  5946.     }
  5947.     env_laser:form =
  5948.     {
  5949.       bbox = '-4 -4 -4 4 4 4'
  5950.       t_Targetname = !
  5951.       t_Parentname = !
  5952.       t_RenderFxChoices = !
  5953.       LaserTarget: =
  5954.       {
  5955.         txt = "&"
  5956.         hint = "Target of Laser"
  5957.       }
  5958.       renderamt: =
  5959.       {
  5960.         txt = "&"
  5961.         hint = "Brightness (1 - 255)"
  5962.       }
  5963.       rendercolor: =
  5964.       {
  5965.         txt = "&"
  5966.         hint = "Beam Color (R G B)"
  5967.       }
  5968.       rendercolor: =
  5969.       {
  5970.         Txt = "&"
  5971.         Typ = "LU3"
  5972.         Hint = "Beam Color (R G B)"
  5973.       }
  5974.       width: =
  5975.       {
  5976.         txt = "&"
  5977.         hint = "Width of Beam"
  5978.       }
  5979.       NoiseAmplitude: =
  5980.       {
  5981.         txt = "&"
  5982.         hint = "Amount of noise (0-255)"
  5983.       }
  5984.       texture: =
  5985.       {
  5986.         txt = "&"
  5987.         hint = "Sprite Name"
  5988.       }
  5989.       EndSprite: =
  5990.       {
  5991.         txt = "&"
  5992.         hint = "End Sprite"
  5993.       }
  5994.       TextureScroll: =
  5995.       {
  5996.         txt = "&"
  5997.         hint = "Texture Scroll Rate (0-100)"
  5998.       }
  5999.       framestart: =
  6000.       {
  6001.         txt = "&"
  6002.         hint = "Starting Frame"
  6003.       }
  6004.       damage: =
  6005.       {
  6006.         txt = "&"
  6007.         hint = "Damage / second"
  6008.       }
  6009.       dissolvetype: =
  6010.       {
  6011.         txt = "&"
  6012.         hint = "Dissolve Type"
  6013.         typ = "C"
  6014.         items = "None"$0D"Energy"$0D"Heavy electrical"$0D"Light electrical"
  6015.         values = "-1"$0D"0"$0D"1"$0D"2"
  6016.       }
  6017.       spawnflags: =
  6018.       {
  6019.         txt = "&"
  6020.         typ = "X1"
  6021.         cap = "Start On"
  6022.       }
  6023.       spawnflags: =
  6024.       {
  6025.         txt = "&"
  6026.         typ = "X16"
  6027.         cap = "StartSparks"
  6028.       }
  6029.       spawnflags: =
  6030.       {
  6031.         txt = "&"
  6032.         typ = "X32"
  6033.         cap = "EndSparks"
  6034.       }
  6035.       spawnflags: =
  6036.       {
  6037.         txt = "&"
  6038.         typ = "X64"
  6039.         cap = "Decal End"
  6040.       }
  6041.       input#TurnOn: =
  6042.       {
  6043.         txt = "&"
  6044.         hint = "Turns the laser on."
  6045.       }
  6046.       input#TurnOff: =
  6047.       {
  6048.         txt = "&"
  6049.         hint = "Turns the laser off."
  6050.       }
  6051.       input#Toggle: =
  6052.       {
  6053.         txt = "&"
  6054.         hint = "Toggles the laser between on and off."
  6055.       }
  6056.     }
  6057.     env_message:form =
  6058.     {
  6059.       bbox = '-8 -8 -8 8 8 8'
  6060.       t_Targetname = !
  6061.       message: =
  6062.       {
  6063.         txt = "&"
  6064.         hint = "Message Text"
  6065.       }
  6066.       spawnflags: =
  6067.       {
  6068.         txt = "&"
  6069.         typ = "X1"
  6070.         cap = "Play Once"
  6071.       }
  6072.       spawnflags: =
  6073.       {
  6074.         txt = "&"
  6075.         typ = "X2"
  6076.         cap = "All Clients"
  6077.       }
  6078.       messagesound: =
  6079.       {
  6080.         txt = "&"
  6081.         hint = "Sound Effect"
  6082.       }
  6083.       messagevolume: =
  6084.       {
  6085.         txt = "&"
  6086.         hint = "Volume 0-10"
  6087.       }
  6088.       messageattenuation: =
  6089.       {
  6090.         txt = "&"
  6091.         hint = "Sound Radius"
  6092.         typ = "C"
  6093.         items = "Small Radius"$0D"Medium Radius"$0D"Large  Radius"$0D"Play Eve"
  6094.          "rywhere"
  6095.         values = "0"$0D"1"$0D"2"$0D"3"
  6096.       }
  6097.       input#ShowMessage: =
  6098.       {
  6099.         txt = "&"
  6100.         hint = "Shows the message and plays the sound."
  6101.       }
  6102.       output#OnShowMessage: =
  6103.       {
  6104.         txt = "&"
  6105.         hint = "Fired when the message is activated."
  6106.       }
  6107.     }
  6108.     env_hudhint:form =
  6109.     {
  6110.       bbox = '-8 -8 -8 8 8 8'
  6111.       t_Targetname = !
  6112.       message: =
  6113.       {
  6114.         txt = "&"
  6115.         hint = "Hint Text (localized)"
  6116.       }
  6117.       input#ShowHudHint: =
  6118.       {
  6119.         txt = "&"
  6120.         hint = "Shows the hint message."
  6121.       }
  6122.     }
  6123.     env_shake:form =
  6124.     {
  6125.       t_Targetname = !
  6126.       t_Parentname = !
  6127.       spawnflags: =
  6128.       {
  6129.         txt = "&"
  6130.         typ = "X1"
  6131.         cap = "GlobalShake"
  6132.       }
  6133.       spawnflags: =
  6134.       {
  6135.         txt = "&"
  6136.         typ = "X4"
  6137.         cap = "In Air"
  6138.       }
  6139.       spawnflags: =
  6140.       {
  6141.         txt = "&"
  6142.         typ = "X8"
  6143.         cap = "Physics"
  6144.       }
  6145.       spawnflags: =
  6146.       {
  6147.         txt = "&"
  6148.         typ = "X16"
  6149.         cap = "Ropes"
  6150.       }
  6151.       amplitude: =
  6152.       {
  6153.         txt = "&"
  6154.         hint = "Amplitude (0-16)"
  6155.       }
  6156.       radius: =
  6157.       {
  6158.         txt = "&"
  6159.         hint = "Effect Radius"
  6160.       }
  6161.       duration: =
  6162.       {
  6163.         txt = "&"
  6164.         hint = "Duration (seconds)"
  6165.       }
  6166.       frequency: =
  6167.       {
  6168.         txt = "&"
  6169.         hint = "Frequency"
  6170.       }
  6171.       input#Amplitude: =
  6172.       {
  6173.         txt = "&"
  6174.         hint = "Set the amplitude (0-16)"
  6175.       }
  6176.       input#Frequency: =
  6177.       {
  6178.         txt = "&"
  6179.         hint = "Set the frequence. Should be a value between 0 and 255, where "
  6180.          "0.1 = jerk, and 255.0 = rumble."
  6181.       }
  6182.       input#StartShake: =
  6183.       {
  6184.         txt = "&"
  6185.         hint = "Start the shake."
  6186.       }
  6187.       input#StopShake: =
  6188.       {
  6189.         txt = "&"
  6190.         hint = "Stop the shake."
  6191.       }
  6192.     }
  6193.     gibshooter:form =
  6194.     {
  6195.       t_gibshooterbase = !
  6196.     }
  6197.     env_shooter:form =
  6198.     {
  6199.       t_gibshooterbase = !
  6200.       t_RenderFields = !
  6201.       shootmodel: =
  6202.       {
  6203.         txt = "&"
  6204.         hint = "Model"
  6205.         typ = "B"
  6206.         Cap = "models..."
  6207.         form = "t_models_hl2_form:form"
  6208.       }
  6209.       shootsounds: =
  6210.       {
  6211.         txt = "&"
  6212.         hint = "Material Sound"
  6213.         typ = "C"
  6214.         items = "None"$0D"Glass"$0D"Wood"$0D"Metal"$0D"Flesh"$0D"Concrete"
  6215.         values = "-1"$0D"0"$0D"1"$0D"2"$0D"3"$0D"4"
  6216.       }
  6217.       simulation: =
  6218.       {
  6219.         txt = "&"
  6220.         hint = "Simulate"
  6221.         typ = "C"
  6222.         items = "Point"$0D"Physics"$0D"Ragdoll"
  6223.         values = "0"$0D"1"$0D"2"
  6224.       }
  6225.       skin: =
  6226.       {
  6227.         txt = "&"
  6228.         hint = "Gib Skin"
  6229.       }
  6230.       spawnflags: =
  6231.       {
  6232.         txt = "&"
  6233.         typ = "X2"
  6234.         cap = "On fire"
  6235.       }
  6236.       spawnflags: =
  6237.       {
  6238.         txt = "&"
  6239.         typ = "X4"
  6240.         cap = "strict remove after lifetime"
  6241.       }
  6242.     }
  6243.     env_rotorshooter:form =
  6244.     {
  6245.       t_gibshooterbase = !
  6246.       t_RenderFields = !
  6247.       shootmodel: =
  6248.       {
  6249.         txt = "&"
  6250.         hint = "Model"
  6251.         typ = "B"
  6252.         Cap = "models..."
  6253.         form = "t_models_hl2_form:form"
  6254.       }
  6255.       shootsounds: =
  6256.       {
  6257.         txt = "&"
  6258.         hint = "Material Sound"
  6259.         typ = "C"
  6260.         items = "None"$0D"Glass"$0D"Wood"$0D"Metal"$0D"Flesh"$0D"Concrete"
  6261.         values = "-1"$0D"0"$0D"1"$0D"2"$0D"3"$0D"4"
  6262.       }
  6263.       simulation: =
  6264.       {
  6265.         txt = "&"
  6266.         hint = "Simulate"
  6267.         typ = "C"
  6268.         items = "Point"$0D"Physics"$0D"Ragdoll"
  6269.         values = "0"$0D"1"$0D"2"
  6270.       }
  6271.       skin: =
  6272.       {
  6273.         txt = "&"
  6274.         hint = "Gib Skin"
  6275.       }
  6276.       spawnflags: =
  6277.       {
  6278.         txt = "&"
  6279.         typ = "X2"
  6280.         cap = "On fire"
  6281.       }
  6282.       rotortime: =
  6283.       {
  6284.         txt = "&"
  6285.         hint = "Time Under Rotor"
  6286.       }
  6287.       rotortimevariance: =
  6288.       {
  6289.         txt = "&"
  6290.         hint = "Time variance"
  6291.       }
  6292.     }
  6293.     env_soundscape_proxy:form =
  6294.     {
  6295.       t_Targetname = !
  6296.       t_Parentname = !
  6297.       MainSoundscapeName: =
  6298.       {
  6299.         txt = "&"
  6300.         hint = "Soundscape Entity"
  6301.       }
  6302.       radius: =
  6303.       {
  6304.         txt = "&"
  6305.         hint = "Radius"
  6306.       }
  6307.     }
  6308.  
  6309.     env_soundscape:form =
  6310.     {
  6311.       t_Targetname = !
  6312.       t_Parentname = !
  6313.       t_EnableDisable = !
  6314.       radius: =
  6315.       {
  6316.         txt = "&"
  6317.         hint = "Radius"
  6318.       }
  6319.  
  6320. // include external soundscape file
  6321.  
  6322.             t_soundscapeselect = !
  6323.  
  6324. // old dialog        
  6325. //
  6326. //      soundscape: =
  6327. //      {
  6328. //        txt = "&"
  6329. //        hint = "Soundscape"
  6330. //        typ = "C"
  6331. //        items = "Nothing"$0D"Automatic"$0D"Automatic (dialog)"$0D"Indoor"$0D"O"
  6332. //         "utdoor"
  6333. //        values = "Nothing"$0D"Automatic"$0D"Automatic_Dialog"$0D"GenericIndoor"
  6334. //         $0D"GenericOutdoor"
  6335. //      }
  6336.  
  6337.       position0: =
  6338.       {
  6339.         txt = "&"
  6340.         hint = "Sound Position 0"
  6341.       }
  6342.       position1: =
  6343.       {
  6344.         txt = "&"
  6345.         hint = "Sound Position 1"
  6346.       }
  6347.       position2: =
  6348.       {
  6349.         txt = "&"
  6350.         hint = "Sound Position 2"
  6351.       }
  6352.       position3: =
  6353.       {
  6354.         txt = "&"
  6355.         hint = "Sound Position 3"
  6356.       }
  6357.       position4: =
  6358.       {
  6359.         txt = "&"
  6360.         hint = "Sound Position 4"
  6361.       }
  6362.       position5: =
  6363.       {
  6364.         txt = "&"
  6365.         hint = "Sound Position 5"
  6366.       }
  6367.       position6: =
  6368.       {
  6369.         txt = "&"
  6370.         hint = "Sound Position 6"
  6371.       }
  6372.       position7: =
  6373.       {
  6374.         txt = "&"
  6375.         hint = "Sound Position 7"
  6376.       }
  6377.       input#Enable: =
  6378.       {
  6379.         txt = "&"
  6380.         hint = "Enable the soundscape."
  6381.       }
  6382.       input#Disabled: =
  6383.       {
  6384.         txt = "&"
  6385.         hint = "Disable the soundscape."
  6386.       }
  6387.       input#ToggleEnabled: =
  6388.       {
  6389.         txt = "&"
  6390.         hint = "Toggle the soundscape enabled state."
  6391.       }
  6392.       output#OnPlay: =
  6393.       {
  6394.         txt = "&"
  6395.         hint = "Fired when this soundscape becomes the active one."
  6396.       }
  6397.     }
  6398.  
  6399.     t_env_soundscape:incl =
  6400.     {
  6401.       t_Targetname = !
  6402.       t_Parentname = !
  6403.       t_EnableDisable = !
  6404.       radius: =
  6405.       {
  6406.         txt = "&"
  6407.         hint = "Radius"
  6408.       }
  6409.  
  6410. // include external soundscape file
  6411.  
  6412.             t_soundscapeselect = !
  6413.  
  6414. // old dialog        
  6415. //
  6416. //      soundscape: =
  6417. //      {
  6418. //        txt = "&"
  6419. //        hint = "Soundscape"
  6420. //        typ = "C"
  6421. //        items = "Nothing"$0D"Automatic"$0D"Automatic (dialog)"$0D"Indoor"$0D"O"
  6422. //         "utdoor"
  6423. //        values = "Nothing"$0D"Automatic"$0D"Automatic_Dialog"$0D"GenericIndoor"
  6424. //         $0D"GenericOutdoor"
  6425. //      }
  6426.  
  6427.       position0: =
  6428.       {
  6429.         txt = "&"
  6430.         hint = "Sound Position 0"
  6431.       }
  6432.       position1: =
  6433.       {
  6434.         txt = "&"
  6435.         hint = "Sound Position 1"
  6436.       }
  6437.       position2: =
  6438.       {
  6439.         txt = "&"
  6440.         hint = "Sound Position 2"
  6441.       }
  6442.       position3: =
  6443.       {
  6444.         txt = "&"
  6445.         hint = "Sound Position 3"
  6446.       }
  6447.       position4: =
  6448.       {
  6449.         txt = "&"
  6450.         hint = "Sound Position 4"
  6451.       }
  6452.       position5: =
  6453.       {
  6454.         txt = "&"
  6455.         hint = "Sound Position 5"
  6456.       }
  6457.       position6: =
  6458.       {
  6459.         txt = "&"
  6460.         hint = "Sound Position 6"
  6461.       }
  6462.       position7: =
  6463.       {
  6464.         txt = "&"
  6465.         hint = "Sound Position 7"
  6466.       }
  6467.       input#Enable: =
  6468.       {
  6469.         txt = "&"
  6470.         hint = "Enable the soundscape."
  6471.       }
  6472.       input#Disabled: =
  6473.       {
  6474.         txt = "&"
  6475.         hint = "Disable the soundscape."
  6476.       }
  6477.       input#ToggleEnabled: =
  6478.       {
  6479.         txt = "&"
  6480.         hint = "Toggle the soundscape enabled state."
  6481.       }
  6482.       output#OnPlay: =
  6483.       {
  6484.         txt = "&"
  6485.         hint = "Fired when this soundscape becomes the active one."
  6486.       }
  6487.     }
  6488.  
  6489.  
  6490.  
  6491.     env_soundscape_triggerable:form =
  6492.     {
  6493.       t_env_soundscape = !
  6494.     }
  6495.     env_spark:form =
  6496.     {
  6497.       t_Targetname = !
  6498.       t_Parentname = !
  6499.       t_Angles = !
  6500.       MaxDelay: =
  6501.       {
  6502.         txt = "&"
  6503.         hint = "Max Delay"
  6504.       }
  6505.       Magnitude: =
  6506.       {
  6507.         txt = "&"
  6508.         hint = "Magnitude"
  6509.         typ = "C"
  6510.         items = "Small"$0D"Medium"$0D"Large"$0D"Huge"
  6511.         values = "1"$0D"2"$0D"5"$0D"8"
  6512.       }
  6513.       TrailLength: =
  6514.       {
  6515.         txt = "&"
  6516.         hint = "Spark Trail Length"
  6517.         typ = "C"
  6518.         items = "Short"$0D"Medium"$0D"Long"
  6519.         values = "1"$0D"2"$0D"3"
  6520.       }
  6521.       spawnflags: =
  6522.       {
  6523.         txt = "&"
  6524.         typ = "X64"
  6525.         cap = "Start ON"
  6526.       }
  6527.       spawnflags: =
  6528.       {
  6529.         txt = "&"
  6530.         typ = "X128"
  6531.         cap = "Glow"
  6532.       }
  6533.       spawnflags: =
  6534.       {
  6535.         txt = "&"
  6536.         typ = "X256"
  6537.         cap = "Silent"
  6538.       }
  6539.       spawnflags: =
  6540.       {
  6541.         txt = "&"
  6542.         typ = "X512"
  6543.         cap = "Directional"
  6544.       }
  6545.       input#StartSpark: =
  6546.       {
  6547.         txt = "&"
  6548.         hint = "Start the spark effect."
  6549.       }
  6550.       input#StopSpark: =
  6551.       {
  6552.         txt = "&"
  6553.         hint = "Stop the spark effect."
  6554.       }
  6555.       input#ToggleSpark: =
  6556.       {
  6557.         txt = "&"
  6558.         hint = "Toggle the on/off state of the spark effect."
  6559.       }
  6560.       input#SparkOnce: =
  6561.       {
  6562.         txt = "&"
  6563.         hint = "Spark once."
  6564.       }
  6565.     }
  6566.     env_sprite:form =
  6567.     {
  6568.       bbox = '-2 -2 -2 2 2 2'
  6569.       t_Targetname = !
  6570.       t_Parentname = !
  6571.       t_RenderFields = !
  6572.       t_DXLevelChoice = !
  6573.       framerate: =
  6574.       {
  6575.         txt = "&"
  6576.         hint = "Framerate"
  6577.       }
  6578.       model: =
  6579.       {
  6580.         txt = "&"
  6581.         hint = "Sprite Name"
  6582.       }
  6583.       scale: =
  6584.       {
  6585.         txt = "&"
  6586.         hint = "Scale"
  6587.       }
  6588.       spawnflags: =
  6589.       {
  6590.         txt = "&"
  6591.         typ = "X1"
  6592.         cap = "Start on"
  6593.       }
  6594.       spawnflags: =
  6595.       {
  6596.         txt = "&"
  6597.         typ = "X2"
  6598.         cap = "Play Once"
  6599.       }
  6600.       GlowProxySize: =
  6601.       {
  6602.         txt = "&"
  6603.         hint = "Size of Glow Proxy Geometry."
  6604.       }
  6605.       input#Alpha: =
  6606.       {
  6607.         txt = "&"
  6608.         hint = "Set the sprite's alpha (0 - 255)."
  6609.       }
  6610.       input#Color: =
  6611.       {
  6612.         txt = "&"
  6613.         hint = "Set the sprite's color (R G B)."
  6614.       }
  6615.       input#SetScale: =
  6616.       {
  6617.         txt = "&"
  6618.         hint = "Set the sprite's scale (0 - 8.0)."
  6619.       }
  6620.       input#HideSprite: =
  6621.       {
  6622.         txt = "&"
  6623.         hint = "Hide the sprite. Won't be drawn until the 'ShowSprite' input i"
  6624.          "s received."
  6625.       }
  6626.       input#ShowSprite: =
  6627.       {
  6628.         txt = "&"
  6629.         hint = "Show the sprite."
  6630.       }
  6631.       input#ToggleSprite: =
  6632.       {
  6633.         txt = "&"
  6634.         hint = "Toggle the sprite between hidden and shown."
  6635.       }
  6636.     }
  6637.     env_wind:form =
  6638.     {
  6639.       t_Targetname = !
  6640.       t_Angles = !
  6641.       gustsound: =
  6642.       {
  6643.         txt = "&"
  6644.         hint = "Gust Sound Filename"
  6645.       }
  6646.       minwind: =
  6647.       {
  6648.         txt = "&"
  6649.         hint = "Min normal speed"
  6650.       }
  6651.       maxwind: =
  6652.       {
  6653.         txt = "&"
  6654.         hint = "Max normal speed"
  6655.       }
  6656.       mingust: =
  6657.       {
  6658.         txt = "&"
  6659.         hint = "Min gust speed"
  6660.       }
  6661.       maxgust: =
  6662.       {
  6663.         txt = "&"
  6664.         hint = "Max gust speed"
  6665.       }
  6666.       mingustdelay: =
  6667.       {
  6668.         txt = "&"
  6669.         hint = "Min gust delay"
  6670.       }
  6671.       maxgustdelay: =
  6672.       {
  6673.         txt = "&"
  6674.         hint = "Max gust delay"
  6675.       }
  6676.       gustdirchange: =
  6677.       {
  6678.         txt = "&"
  6679.         hint = "Max gust dir change (degrees)"
  6680.       }
  6681.     }
  6682.     sky_camera:form =
  6683.     {
  6684.       bbox = '-16 -16 -16 16 16 16'
  6685.       t_Angles = !
  6686.       scale: =
  6687.       {
  6688.         txt = "&"
  6689.         hint = "3D Skybox scale"
  6690.       }
  6691.       fogenable: =
  6692.       {
  6693.         txt = "&"
  6694.         hint = "Fog Enable"
  6695.         typ = "C"
  6696.         items = "No"$0D"Yes"
  6697.         values = "0"$0D"1"
  6698.       }
  6699.       fogblend: =
  6700.       {
  6701.         txt = "&"
  6702.         hint = "Fog Blend"
  6703.         typ = "C"
  6704.         items = "No"$0D"Yes"
  6705.         values = "0"$0D"1"
  6706.       }
  6707.       use_angles: =
  6708.       {
  6709.         txt = "&"
  6710.         hint = "Use Angles for Fog Dir"
  6711.         typ = "C"
  6712.         items = "No"$0D"Yes"
  6713.         values = "0"$0D"1"
  6714.       }
  6715.       fogcolor: =
  6716.       {
  6717.         txt = "&"
  6718.         hint = "Primary Fog Color"
  6719.       }
  6720.       _fogcolor: =
  6721.       {
  6722.         Txt = "&"
  6723.         Typ = "LU3"
  6724.         Hint = "Primary Fog Color"
  6725.       }
  6726.       fogcolor2: =
  6727.       {
  6728.         txt = "&"
  6729.         hint = "Secondary Fog Color"
  6730.       }
  6731.       _fogcolor2: =
  6732.       {
  6733.         Txt = "&"
  6734.         Typ = "LU3"
  6735.         Hint = "Secondary Fog Color"
  6736.       }
  6737.       fogdir: =
  6738.       {
  6739.         txt = "&"
  6740.         hint = "Primary Fog Dir"
  6741.       }
  6742.       fogstart: =
  6743.       {
  6744.         txt = "&"
  6745.         hint = "Fog Start"
  6746.       }
  6747.       fogend: =
  6748.       {
  6749.         txt = "&"
  6750.         hint = "Fog End"
  6751.       }
  6752.     }
  6753.     t_BaseSpeaker:incl =
  6754.     {
  6755.       t_Targetname = !
  6756.       t_ResponseContext = !
  6757.       delaymin: =
  6758.       {
  6759.         txt = "&"
  6760.         hint = "Min Delay Between Announcements"
  6761.       }
  6762.       delaymax: =
  6763.       {
  6764.         txt = "&"
  6765.         hint = "Max Delay Between Announcements"
  6766.       }
  6767.       spawnflags: =
  6768.       {
  6769.         txt = "&"
  6770.         typ = "X1"
  6771.         cap = "Start Silent"
  6772.       }
  6773.       spawnflags: =
  6774.       {
  6775.         txt = "&"
  6776.         typ = "X2"
  6777.         cap = "Play Everywhere"
  6778.       }
  6779.       rulescript: =
  6780.       {
  6781.         txt = "&"
  6782.         hint = "Context rule script"
  6783.       }
  6784.       concept: =
  6785.       {
  6786.         txt = "&"
  6787.         hint = "Concept name"
  6788.       }
  6789.       input#TurnOn: =
  6790.       {
  6791.         txt = "&"
  6792.         hint = "Turn on the random announcements."
  6793.       }
  6794.       input#TurnOff: =
  6795.       {
  6796.         txt = "&"
  6797.         hint = "Turn off the random announcements."
  6798.       }
  6799.       input#Toggle: =
  6800.       {
  6801.         txt = "&"
  6802.         hint = "Toggle the random announcements off and on."
  6803.       }
  6804.     }
  6805.     game_weapon_manager:form =
  6806.     {
  6807.       t_Targetname = !
  6808.       weaponname: =
  6809.       {
  6810.         txt = "&"
  6811.         hint = "Weapon Classname"
  6812.       }
  6813.       maxpieces: =
  6814.       {
  6815.         txt = "&"
  6816.         hint = "Max Allowed in Level"
  6817.       }
  6818.     }
  6819.     game_end:form =
  6820.     {
  6821.       t_Targetname = !
  6822.       master: =
  6823.       {
  6824.         txt = "&"
  6825.         hint = "Master (Obsolete)"
  6826.       }
  6827.       input#EndGame: =
  6828.       {
  6829.         txt = "&"
  6830.         hint = "End the multiplayer game."
  6831.       }
  6832.     }
  6833.     game_player_equip:form =
  6834.     {
  6835.       bbox = '-8 -8 -8 8 8 8'
  6836.       t_Targetname = !
  6837.       spawnflags: =
  6838.       {
  6839.         txt = "&"
  6840.         typ = "X1"
  6841.         cap = "Use Only"
  6842.       }
  6843.       master: =
  6844.       {
  6845.         txt = "&"
  6846.         hint = "Team Master (Obsolete)"
  6847.       }
  6848.     }
  6849.     game_player_team:form =
  6850.     {
  6851.       bbox = '-8 -8 -8 8 8 8'
  6852.       t_Targetname = !
  6853.       spawnflags: =
  6854.       {
  6855.         txt = "&"
  6856.         typ = "X1"
  6857.         cap = "Remove On fire"
  6858.       }
  6859.       spawnflags: =
  6860.       {
  6861.         txt = "&"
  6862.         typ = "X2"
  6863.         cap = "Kill Player"
  6864.       }
  6865.       spawnflags: =
  6866.       {
  6867.         txt = "&"
  6868.         typ = "X4"
  6869.         cap = "Gib Player"
  6870.       }
  6871.       target: =
  6872.       {
  6873.         txt = "&"
  6874.         hint = "game_team_master to use"
  6875.       }
  6876.       master: =
  6877.       {
  6878.         txt = "&"
  6879.         hint = "Master (Obsolete)"
  6880.       }
  6881.     }
  6882.     game_score:form =
  6883.     {
  6884.       bbox = '-8 -8 -8 8 8 8'
  6885.       t_Targetname = !
  6886.       spawnflags: =
  6887.       {
  6888.         txt = "&"
  6889.         typ = "X1"
  6890.         cap = "Allow Negative"
  6891.       }
  6892.       spawnflags: =
  6893.       {
  6894.         txt = "&"
  6895.         typ = "X2"
  6896.         cap = "Team Points"
  6897.       }
  6898.       points: =
  6899.       {
  6900.         txt = "&"
  6901.         hint = "Points to add (+/-)"
  6902.       }
  6903.       master: =
  6904.       {
  6905.         txt = "&"
  6906.         hint = "Master (Obsolete)"
  6907.       }
  6908.       input#ApplyScore: =
  6909.       {
  6910.         txt = "&"
  6911.         hint = "Add score to player."
  6912.       }
  6913.     }
  6914.     game_text:form =
  6915.     {
  6916.       t_Targetname = !
  6917.       spawnflags: =
  6918.       {
  6919.         txt = "&"
  6920.         typ = "X1"
  6921.         cap = "All Players"
  6922.       }
  6923.       message: =
  6924.       {
  6925.         txt = "&"
  6926.         hint = "Message Text"
  6927.       }
  6928.       x: =
  6929.       {
  6930.         txt = "&"
  6931.         hint = "X (0 - 1.0 = left to right) (-1 centers)"
  6932.       }
  6933.       y: =
  6934.       {
  6935.         txt = "&"
  6936.         hint = "Y (0 - 1.0 = top to bottom) (-1 centers)"
  6937.       }
  6938.       effect: =
  6939.       {
  6940.         txt = "&"
  6941.         hint = "Text Effect"
  6942.         typ = "C"
  6943.         items = "Fade In/Out"$0D"Credits"$0D"Scan Out"
  6944.         values = "0"$0D"1"$0D"2"
  6945.       }
  6946.       color: =
  6947.       {
  6948.         txt = "&"
  6949.         hint = "Color1"
  6950.       }
  6951.       color2: =
  6952.       {
  6953.         txt = "&"
  6954.         hint = "Color2"
  6955.       }
  6956.       fadein: =
  6957.       {
  6958.         txt = "&"
  6959.         hint = "Fade in Time (or character scan time)"
  6960.       }
  6961.       fadeout: =
  6962.       {
  6963.         txt = "&"
  6964.         hint = "Fade Out Time"
  6965.       }
  6966.       holdtime: =
  6967.       {
  6968.         txt = "&"
  6969.         hint = "Hold Time"
  6970.       }
  6971.       fxtime: =
  6972.       {
  6973.         txt = "&"
  6974.         hint = "Scan time (scan effect only)"
  6975.       }
  6976.       channel: =
  6977.       {
  6978.         txt = "&"
  6979.         hint = "Text Channel"
  6980.         typ = "C"
  6981.         items = "Channel 1"$0D"Channel 2"$0D"Channel 3"$0D"Channel 4"
  6982.         values = "1"$0D"2"$0D"3"$0D"4"
  6983.       }
  6984.       master: =
  6985.       {
  6986.         txt = "&"
  6987.         hint = "Master"
  6988.       }
  6989.       input#Display: =
  6990.       {
  6991.         txt = "&"
  6992.         hint = "Display the message text."
  6993.       }
  6994.     }
  6995.     point_enable_motion_fixup:form =
  6996.     {
  6997.       bbox = '-2 -2 -2 2 2 2'
  6998.       t_Parentname = !
  6999.       t_Angles = !
  7000.     }
  7001.     point_message:form =
  7002.     {
  7003.       bbox = '-8 -8 -8 8 8 8'
  7004.       t_Targetname = !
  7005.       t_Parentname = !
  7006.       spawnflags: =
  7007.       {
  7008.         txt = "&"
  7009.         typ = "X1"
  7010.         cap = "Start Disabled"
  7011.       }
  7012.       message: =
  7013.       {
  7014.         txt = "&"
  7015.         hint = "Entity Message"
  7016.       }
  7017.       radius: =
  7018.       {
  7019.         txt = "&"
  7020.         hint = "Show message radius"
  7021.       }
  7022.       developeronly: =
  7023.       {
  7024.         txt = "&"
  7025.         hint = "Developer Only?"
  7026.         typ = "C"
  7027.         items = "No"$0D"Yes"
  7028.         values = "0"$0D"1"
  7029.       }
  7030.       input#Enable: =
  7031.       {
  7032.         txt = "&"
  7033.         hint = "Start displaying the message text, if the player is within the"
  7034.          " message radius."
  7035.       }
  7036.       input#Disable: =
  7037.       {
  7038.         txt = "&"
  7039.         hint = "Stop displaying the message text."
  7040.       }
  7041.     }
  7042.     point_spotlight:form =
  7043.     {
  7044.       t_Targetname = !
  7045.       t_Parentname = !
  7046.       t_Angles = !
  7047.       spawnflags: =
  7048.       {
  7049.         txt = "&"
  7050.         typ = "X1"
  7051.         cap = "Start On"
  7052.       }
  7053.       spawnflags: =
  7054.       {
  7055.         txt = "&"
  7056.         typ = "X2"
  7057.         cap = "No Dynamic Light"
  7058.       }
  7059.       spotlightlength: =
  7060.       {
  7061.         txt = "&"
  7062.         hint = "Spotlight Length"
  7063.       }
  7064.       spotlightwidth: =
  7065.       {
  7066.         txt = "&"
  7067.         hint = "Spotlight Width"
  7068.       }
  7069.       rendercolor: =
  7070.       {
  7071.         txt = "&"
  7072.         hint = "Color (R G B)"
  7073.       }
  7074.       rendercolor: =
  7075.       {
  7076.         Txt = "&"
  7077.         Typ = "LU3"
  7078.         Hint = "Color (R G B)"
  7079.       }
  7080.       input#LightOn: =
  7081.       {
  7082.         txt = "&"
  7083.         hint = "Turn the spotlight on."
  7084.       }
  7085.       input#LightOff: =
  7086.       {
  7087.         txt = "&"
  7088.         hint = "Turn the spotlight off"
  7089.       }
  7090.     }
  7091.     point_tesla:form =
  7092.     {
  7093.       bbox = '-8 -8 -8 8 8 8'
  7094.       t_Targetname = !
  7095.       m_SourceEntityName: =
  7096.       {
  7097.         txt = "&"
  7098.         hint = "Source Entity"
  7099.       }
  7100.       m_SoundName: =
  7101.       {
  7102.         txt = "&"
  7103.         hint = "Sound Name"
  7104.       }
  7105.       texture: =
  7106.       {
  7107.         txt = "&"
  7108.         hint = "Sprite Name"
  7109.       }
  7110.       m_Color: =
  7111.       {
  7112.         txt = "&"
  7113.         hint = "Color"
  7114.       }
  7115.       m_Color: =
  7116.       {
  7117.         Txt = "&"
  7118.         Typ = "LU3"
  7119.         Hint = "Color"
  7120.       }
  7121.       m_flRadius: =
  7122.       {
  7123.         txt = "&"
  7124.         hint = "Radius"
  7125.       }
  7126.       beamcount_min: =
  7127.       {
  7128.         txt = "&"
  7129.         hint = "Min # of Beams"
  7130.       }
  7131.       beamcount_max: =
  7132.       {
  7133.         txt = "&"
  7134.         hint = "Max # of Beams"
  7135.       }
  7136.       thick_min: =
  7137.       {
  7138.         txt = "&"
  7139.         hint = "Min Beam Width"
  7140.       }
  7141.       thick_max: =
  7142.       {
  7143.         txt = "&"
  7144.         hint = "Max Beam Width"
  7145.       }
  7146.       lifetime_min: =
  7147.       {
  7148.         txt = "&"
  7149.         hint = "Min Time Visible"
  7150.       }
  7151.       lifetime_max: =
  7152.       {
  7153.         txt = "&"
  7154.         hint = "Max Time Visible"
  7155.       }
  7156.       interval_min: =
  7157.       {
  7158.         txt = "&"
  7159.         hint = "Min Time Between Arcs"
  7160.       }
  7161.       interval_max: =
  7162.       {
  7163.         txt = "&"
  7164.         hint = "Max Time Between Arcs"
  7165.       }
  7166.       input#TurnOn: =
  7167.       {
  7168.         txt = "&"
  7169.         hint = "Turn emitter on."
  7170.       }
  7171.       input#TurnOff: =
  7172.       {
  7173.         txt = "&"
  7174.         hint = "Turn emitter off."
  7175.       }
  7176.       input#DoSpark: =
  7177.       {
  7178.         txt = "&"
  7179.         hint = "Force a single arc."
  7180.       }
  7181.     }
  7182.     point_clientcommand:form =
  7183.     {
  7184.       bbox = '-8 -8 -8 8 8 8'
  7185.       t_Targetname = !
  7186.       input#Command: =
  7187.       {
  7188.         txt = "&"
  7189.         hint = "Command to execute."
  7190.       }
  7191.     }
  7192.     point_servercommand:form =
  7193.     {
  7194.       bbox = '-8 -8 -8 8 8 8'
  7195.       t_Targetname = !
  7196.       input#Command: =
  7197.       {
  7198.         txt = "&"
  7199.         hint = "Command to execute."
  7200.       }
  7201.     }
  7202.     game_ui:form =
  7203.     {
  7204.       bbox = '-8 -8 -8 8 8 8'
  7205.       t_Targetname = !
  7206.       spawnflags: =
  7207.       {
  7208.         txt = "&"
  7209.         typ = "X32"
  7210.         cap = "Freeze Player"
  7211.       }
  7212.       spawnflags: =
  7213.       {
  7214.         txt = "&"
  7215.         typ = "X64"
  7216.         cap = "Hide Weapon"
  7217.       }
  7218.       spawnflags: =
  7219.       {
  7220.         txt = "&"
  7221.         typ = "X128"
  7222.         cap = "+Use Deactivates"
  7223.       }
  7224.       spawnflags: =
  7225.       {
  7226.         txt = "&"
  7227.         typ = "X256"
  7228.         cap = "Jump Deactivates"
  7229.       }
  7230.       FieldOfView: =
  7231.       {
  7232.         txt = "&"
  7233.         hint = "FieldOfView"
  7234.       }
  7235.       input#Deactivate: =
  7236.       {
  7237.         txt = "&"
  7238.         hint = "Return Player Control."
  7239.       }
  7240.       input#Activate: =
  7241.       {
  7242.         txt = "&"
  7243.         hint = "Take Player Control."
  7244.       }
  7245.       output#PlayerOn: =
  7246.       {
  7247.         txt = "&"
  7248.         hint = "Fired whenever this entity starts controlling the player's inp"
  7249.          "ut."
  7250.       }
  7251.       output#PlayerOff: =
  7252.       {
  7253.         txt = "&"
  7254.         hint = "Fired whenever this entity stops controlling the player's inpu"
  7255.          "t."
  7256.       }
  7257.       output#PressedMoveLeft: =
  7258.       {
  7259.         txt = "&"
  7260.         hint = "Fired whenever the player presses the moveleft key."
  7261.       }
  7262.       output#PressedMoveRight: =
  7263.       {
  7264.         txt = "&"
  7265.         hint = "Fired whenever the player presses the moveright key."
  7266.       }
  7267.       output#PressedForward: =
  7268.       {
  7269.         txt = "&"
  7270.         hint = "Fired whenever the player presses the forward key."
  7271.       }
  7272.       output#PressedBack: =
  7273.       {
  7274.         txt = "&"
  7275.         hint = "Fired whenever the player presses the backward key."
  7276.       }
  7277.       output#PressedAttack: =
  7278.       {
  7279.         txt = "&"
  7280.         hint = "Fired whenever the player presses the attack key."
  7281.       }
  7282.       output#PressedAttack2: =
  7283.       {
  7284.         txt = "&"
  7285.         hint = "Fired whenever the player presses the secondary attack key."
  7286.       }
  7287.       output#XAxis: =
  7288.       {
  7289.         txt = "&"
  7290.         hint = "An output that fires whenever the X axis of the player's input"
  7291.          " changes. i.e. -1 when the player has moveleft key down, 1 when the "
  7292.          "player has moveright key down, and 0 if neither."
  7293.       }
  7294.       output#YAxis: =
  7295.       {
  7296.         txt = "&"
  7297.         hint = "An output that fires whenever the Y axis of the player's input"
  7298.          " changes. i.e. -1 when the player has backward key down, 1 when the "
  7299.          "player has forward key down, and 0 if neither."
  7300.       }
  7301.       output#AttackAxis: =
  7302.       {
  7303.         txt = "&"
  7304.         hint = "An output that fires whenever the state of the player's attack"
  7305.          " key changes. i.e. 1 when the player has the attack key down, 0 othe"
  7306.          "rwise."
  7307.       }
  7308.       output#Attack2Axis: =
  7309.       {
  7310.         txt = "&"
  7311.         hint = "An output that fires whenever the state of the player's second"
  7312.          "ary attack key changes. i.e. 1 when the player has the secondary att"
  7313.          "ack key down, 0 otherwise."
  7314.       }
  7315.     }
  7316.     game_zone_player:form =
  7317.     {
  7318.       t_Targetname = !
  7319.       t_Parentname = !
  7320.       input#CountPlayersInZone: =
  7321.       {
  7322.         txt = "&"
  7323.         hint = "Count the number of players in the zone, and fire the correspo"
  7324.          "nding outputs."
  7325.       }
  7326.       output#OnPlayerInZone: =
  7327.       {
  7328.         txt = "&"
  7329.         hint = "Fired whenever a count finds a player inside the zone, with th"
  7330.          "e player as the activator."
  7331.       }
  7332.       output#OnPlayerOutZone: =
  7333.       {
  7334.         txt = "&"
  7335.         hint = "Fired whenever a count finds a player outside the zone, with t"
  7336.          "he player as the activator."
  7337.       }
  7338.       output#PlayersInCount: =
  7339.       {
  7340.         txt = "&"
  7341.         hint = "Fired after a count, and contains the number of players found "
  7342.          "inside the zone."
  7343.       }
  7344.       output#PlayersOutCount: =
  7345.       {
  7346.         txt = "&"
  7347.         hint = "Fired after a count, and contains the number of players found "
  7348.          "outside the zone."
  7349.       }
  7350.     }
  7351.     infodecal:form =
  7352.     {
  7353.       t_Targetname = !
  7354.       texture: =
  7355.       {
  7356.         txt = "&"
  7357.         typ = "ET"
  7358.         Cap = "texture..."
  7359.       }
  7360.       LowPriority: =
  7361.       {
  7362.         txt = "&"
  7363.         hint = "Low Priority (can be replaced)"
  7364.         typ = "C"
  7365.         items = "No"$0D"Yes"
  7366.         values = "0"$0D"1"
  7367.       }
  7368.       input#Activate: =
  7369.       {
  7370.         txt = "&"
  7371.         hint = "Force the decal to apply itself to the world."
  7372.       }
  7373.     }
  7374.     info_projecteddecal:form =
  7375.     {
  7376.       t_Angles = !
  7377.       t_Targetname = !
  7378.       texture: =
  7379.       {
  7380.         txt = "&"
  7381.         typ = "ET"
  7382.         Cap = "texture..."
  7383.       }
  7384.       Distance: =
  7385.       {
  7386.         txt = "&"
  7387.         hint = "Distance"
  7388.       }
  7389.       input#Activate: =
  7390.       {
  7391.         txt = "&"
  7392.         hint = "Force the decal to apply itself to the world."
  7393.       }
  7394.     }
  7395.     info_no_dynamic_shadow:form =
  7396.     {
  7397.       sides: =
  7398.       {
  7399.         txt = "&"
  7400.         hint = "Brush faces"
  7401.       }
  7402.     }
  7403.     info_player_start:form =
  7404.     {
  7405.       t_PlayerClass = !
  7406.       t_Angles = !
  7407.       spawnflags: =
  7408.       {
  7409.         txt = "&"
  7410.         typ = "X1"
  7411.         cap = "Master (Has priority if multiple info_player_starts exist)"
  7412.       }
  7413.     }
  7414.     info_overlay:form =
  7415.     {
  7416.       bbox = '-8 -8 -8 8 8 8'
  7417.       material: =
  7418.       {
  7419.         txt = "&"
  7420.         hint = "Material"
  7421.         typ = "ET"
  7422.         Cap = "texture..."
  7423.       }
  7424.       sides: =
  7425.       {
  7426.         txt = "&"
  7427.         hint = "Brush faces"
  7428.       }
  7429.       RenderOrder: =
  7430.       {
  7431.         txt = "&"
  7432.         hint = "Render Order"
  7433.       }
  7434.       StartU: =
  7435.       {
  7436.         txt = "&"
  7437.         hint = "U Start"
  7438.       }
  7439.       EndU: =
  7440.       {
  7441.         txt = "&"
  7442.         hint = "U End"
  7443.       }
  7444.       StartV: =
  7445.       {
  7446.         txt = "&"
  7447.         hint = "V Start"
  7448.       }
  7449.       EndV: =
  7450.       {
  7451.         txt = "&"
  7452.         hint = "V End"
  7453.       }
  7454.       BasisOrigin: =
  7455.       {
  7456.         txt = "&"
  7457.         hint = "Overlay Basis Origin(Read-Only)"
  7458.       }
  7459.       BasisU: =
  7460.       {
  7461.         txt = "&"
  7462.         hint = "Overlay Basis U(Read-Only)"
  7463.       }
  7464.       BasisV: =
  7465.       {
  7466.         txt = "&"
  7467.         hint = "Overlay Basis V(Read-Only)"
  7468.       }
  7469.       BasisNormal: =
  7470.       {
  7471.         txt = "&"
  7472.         hint = "Overlay Basis Normal(Read-Only)"
  7473.       }
  7474.       uv0: =
  7475.       {
  7476.         txt = "&"
  7477.         hint = "Overlay Point 1(Read-Only)"
  7478.       }
  7479.       uv1: =
  7480.       {
  7481.         txt = "&"
  7482.         hint = "Overlay Point 2(Read-Only)"
  7483.       }
  7484.       uv2: =
  7485.       {
  7486.         txt = "&"
  7487.         hint = "Overlay Point 3(Read-Only)"
  7488.       }
  7489.       uv3: =
  7490.       {
  7491.         txt = "&"
  7492.         hint = "Overlay Point 4(Read-Only)"
  7493.       }
  7494.     }
  7495.     info_intermission:form =
  7496.     {
  7497.       bbox = '-4 -4 -4 4 4 4'
  7498.       target: =
  7499.       {
  7500.         txt = "&"
  7501.         hint = "Entity to look at"
  7502.       }
  7503.     }
  7504.     info_landmark:form =
  7505.     {
  7506.       t_Targetname = !
  7507.     }
  7508.     info_null:form =
  7509.     {
  7510.       bbox = '-8 -8 -8 8 8 8'
  7511.       t_Targetname = !
  7512.     }
  7513.     info_target:form =
  7514.     {
  7515.       t_Targetname = !
  7516.       t_Parentname = !
  7517.       t_Angles = !
  7518.       input#DispatchEffect: =
  7519.       {
  7520.         txt = "&"
  7521.         hint = "Dispatch an effect from this point. Unfinished."
  7522.       }
  7523.     }
  7524.     phys_ragdollmagnet:form =
  7525.     {
  7526.       t_Targetname = !
  7527.       t_EnableDisable = !
  7528.       t_Parentname = !
  7529.       t_Angles = !
  7530.       axis: =
  7531.       {
  7532.         txt = "&"
  7533.         hint = "Bar Magnet Axis"
  7534.       }
  7535.       radius: =
  7536.       {
  7537.         txt = "&"
  7538.         hint = "Effective Radius"
  7539.       }
  7540.       force: =
  7541.       {
  7542.         txt = "&"
  7543.         hint = "Force"
  7544.       }
  7545.       target: =
  7546.       {
  7547.         txt = "&"
  7548.         hint = "Entity to affect"
  7549.       }
  7550.       spawnflags: =
  7551.       {
  7552.         txt = "&"
  7553.         typ = "X2"
  7554.         cap = "Bar Magnet (use axis helper)"
  7555.       }
  7556.     }
  7557.     info_lighting:form =
  7558.     {
  7559.       t_Targetname = !
  7560.     }
  7561.     info_teleport_destination:form =
  7562.     {
  7563.       t_Targetname = !
  7564.       t_Parentname = !
  7565.       t_Angles = !
  7566.       t_PlayerClass = !
  7567.     }
  7568.     info_node:form =
  7569.     {
  7570.       t_Targetname = !
  7571.       t_Node = !
  7572.       spawnflags: =
  7573.       {
  7574.         txt = "&"
  7575.         typ = "X1"
  7576.         cap = "Force human permission"
  7577.       }
  7578.       spawnflags: =
  7579.       {
  7580.         txt = "&"
  7581.         typ = "X2"
  7582.         cap = "Force small_centered permission"
  7583.       }
  7584.       spawnflags: =
  7585.       {
  7586.         txt = "&"
  7587.         typ = "X4"
  7588.         cap = "Force wide_human permission"
  7589.       }
  7590.       spawnflags: =
  7591.       {
  7592.         txt = "&"
  7593.         typ = "X8"
  7594.         cap = "Force tiny permissiont"
  7595.       }
  7596.       spawnflags: =
  7597.       {
  7598.         txt = "&"
  7599.         typ = "X16"
  7600.         cap = "Force wide_short permission"
  7601.       }
  7602.       spawnflags: =
  7603.       {
  7604.         txt = "&"
  7605.         typ = "X32"
  7606.         cap = "Force medium permission"
  7607.       }
  7608.       spawnflags: =
  7609.       {
  7610.         txt = "&"
  7611.         typ = "X64"
  7612.         cap = "Force tiny_centered permission"
  7613.       }
  7614.       spawnflags: =
  7615.       {
  7616.         txt = "&"
  7617.         typ = "X128"
  7618.         cap = "Force large permission"
  7619.       }
  7620.       spawnflags: =
  7621.       {
  7622.         txt = "&"
  7623.         typ = "X256"
  7624.         cap = "Force large_centered permission"
  7625.       }
  7626.       spawnflags: =
  7627.       {
  7628.         txt = "&"
  7629.         typ = "X512"
  7630.         cap = "Keep editor position"
  7631.       }
  7632.     }
  7633.     info_node_hint:form =
  7634.     {
  7635.       t_Targetname = !
  7636.       t_Angles = !
  7637.       t_HintNode = !
  7638.       output#OnNPCStartedUsing: =
  7639.       {
  7640.         txt = "&"
  7641.         hint = "Fired when an NPC has reached this node and started using it. "
  7642.          "Passes along the NPC."
  7643.       }
  7644.       output#OnNPCStoppedUsing: =
  7645.       {
  7646.         txt = "&"
  7647.         hint = "Fired when an NPC has stopped using this node. Passes along th"
  7648.          "e NPC."
  7649.       }
  7650.     }
  7651.     info_node_air:form =
  7652.     {
  7653.       t_Targetname = !
  7654.       t_Node = !
  7655.       nodeheight: =
  7656.       {
  7657.         txt = "&"
  7658.         hint = "NodeHeight"
  7659.       }
  7660.     }
  7661.     info_node_air_hint:form =
  7662.     {
  7663.       t_Angles = !
  7664.       t_Targetname = !
  7665.       t_HintNode = !
  7666.       nodeheight: =
  7667.       {
  7668.         txt = "&"
  7669.         hint = "NodeHeight"
  7670.       }
  7671.     }
  7672.     info_hint:form =
  7673.     {
  7674.       t_Targetname = !
  7675.       t_Angles = !
  7676.       t_HintNode = !
  7677.     }
  7678.     info_node_link:form =
  7679.     {
  7680.       bbox = '-8 -8 -8 8 8 8'
  7681.       t_Targetname = !
  7682.       StartNode: =
  7683.       {
  7684.         txt = "&"
  7685.         hint = "Start node ID"
  7686.       }
  7687.       EndNode: =
  7688.       {
  7689.         txt = "&"
  7690.         hint = "End node ID"
  7691.       }
  7692.       initialstate: =
  7693.       {
  7694.         txt = "&"
  7695.         hint = "Initial State"
  7696.         typ = "C"
  7697.         items = "Off"$0D"On"
  7698.         values = "0"$0D"1"
  7699.       }
  7700.       AllowUse: =
  7701.       {
  7702.         txt = "&"
  7703.         hint = "Allow Pass When Off"
  7704.       }
  7705.       spawnflags: =
  7706.       {
  7707.         txt = "&"
  7708.         typ = "X1"
  7709.         cap = "Force human connect"
  7710.       }
  7711.       spawnflags: =
  7712.       {
  7713.         txt = "&"
  7714.         typ = "X2"
  7715.         cap = "Force small_centered connect"
  7716.       }
  7717.       spawnflags: =
  7718.       {
  7719.         txt = "&"
  7720.         typ = "X4"
  7721.         cap = "Force wide_human connect"
  7722.       }
  7723.       spawnflags: =
  7724.       {
  7725.         txt = "&"
  7726.         typ = "X8"
  7727.         cap = "Force tiny connect"
  7728.       }
  7729.       spawnflags: =
  7730.       {
  7731.         txt = "&"
  7732.         typ = "X16"
  7733.         cap = "Force wide_short connect"
  7734.       }
  7735.       spawnflags: =
  7736.       {
  7737.         txt = "&"
  7738.         typ = "X32"
  7739.         cap = "Force medium connect"
  7740.       }
  7741.       spawnflags: =
  7742.       {
  7743.         txt = "&"
  7744.         typ = "X64"
  7745.         cap = "Force tiny_centered connect"
  7746.       }
  7747.       spawnflags: =
  7748.       {
  7749.         txt = "&"
  7750.         typ = "X128"
  7751.         cap = "Force large connect"
  7752.       }
  7753.       spawnflags: =
  7754.       {
  7755.         txt = "&"
  7756.         typ = "X256"
  7757.         cap = "Force large_centered connect"
  7758.       }
  7759.       input#TurnOn: =
  7760.       {
  7761.         txt = "&"
  7762.         hint = "Turn the link on."
  7763.       }
  7764.       input#TurnOff: =
  7765.       {
  7766.         txt = "&"
  7767.         hint = "Turn the link off."
  7768.       }
  7769.     }
  7770.     info_node_link_controller:form =
  7771.     {
  7772.       t_Targetname = !
  7773.       mins: =
  7774.       {
  7775.         txt = "&"
  7776.         hint = "Mins"
  7777.       }
  7778.       maxs: =
  7779.       {
  7780.         txt = "&"
  7781.         hint = "Maxs"
  7782.       }
  7783.       initialstate: =
  7784.       {
  7785.         txt = "&"
  7786.         hint = "Initial State"
  7787.         typ = "C"
  7788.         items = "Off"$0D"On"
  7789.         values = "0"$0D"1"
  7790.       }
  7791.       AllowUse: =
  7792.       {
  7793.         txt = "&"
  7794.         hint = "Allow Pass When Off"
  7795.       }
  7796.       input#TurnOn: =
  7797.       {
  7798.         txt = "&"
  7799.         hint = "Turn the link on."
  7800.       }
  7801.       input#TurnOff: =
  7802.       {
  7803.         txt = "&"
  7804.         hint = "Turn the link off."
  7805.       }
  7806.     }
  7807.     info_node_climb:form =
  7808.     {
  7809.       t_Targetname = !
  7810.       t_Angles = !
  7811.       t_HintNode = !
  7812.     }
  7813.     light:form =
  7814.     {
  7815.       t_Targetname = !
  7816.       t_Light = !
  7817.       target: =
  7818.       {
  7819.         txt = "&"
  7820.         hint = "Entity To Point At"
  7821.       }
  7822.       spawnflags: =
  7823.       {
  7824.         txt = "&"
  7825.         typ = "X1"
  7826.         cap = "Initially dark"
  7827.       }
  7828.       _distance: =
  7829.       {
  7830.         txt = "&"
  7831.         hint = "Maximum Distance"
  7832.       }
  7833.     }
  7834.     light_environment:form =
  7835.     {
  7836.       t_Angles = !
  7837.       pitch: =
  7838.       {
  7839.         txt = "&"
  7840.         hint = "Pitch"
  7841.       }
  7842.       _light: =
  7843.       {
  7844.         txt = "&"
  7845.         hint = "Brightness"
  7846.       }
  7847.       _light: =
  7848.       {
  7849.         Txt = "&"
  7850.         Typ = "LU4"
  7851.         Hint = "light color (not the intensity, only the color)"
  7852.       }
  7853.       _ambient: =
  7854.       {
  7855.         txt = "&"
  7856.         hint = "Ambient"
  7857.       }
  7858.       _ambient: =
  7859.       {
  7860.         Txt = "&"
  7861.         Typ = "LU4"
  7862.         Hint = "light color (not the intensity, only the color)"
  7863.       }
  7864.     }
  7865.     light_spot:form =
  7866.     {
  7867.       t_Targetname = !
  7868.       t_Angles = !
  7869.       t_Light = !
  7870.       target: =
  7871.       {
  7872.         txt = "&"
  7873.         hint = "Entity to point at"
  7874.       }
  7875.       _inner_cone: =
  7876.       {
  7877.         txt = "&"
  7878.         hint = "Inner (bright) angle"
  7879.       }
  7880.       _cone: =
  7881.       {
  7882.         txt = "&"
  7883.         hint = "Outer (fading) angle"
  7884.       }
  7885.       _exponent: =
  7886.       {
  7887.         txt = "&"
  7888.         hint = "Focus"
  7889.       }
  7890.       _distance: =
  7891.       {
  7892.         txt = "&"
  7893.         hint = "Maximum distance"
  7894.       }
  7895.       pitch: =
  7896.       {
  7897.         txt = "&"
  7898.         hint = "Pitch"
  7899.       }
  7900.       spawnflags: =
  7901.       {
  7902.         txt = "&"
  7903.         typ = "X1"
  7904.         cap = "Initially dark"
  7905.       }
  7906.     }
  7907.     light_dynamic:form =
  7908.     {
  7909.       bbox = '-4 -4 -4 4 4 4'
  7910.       t_Targetname = !
  7911.       t_Parentname = !
  7912.       t_Angles = !
  7913.       target: =
  7914.       {
  7915.         txt = "&"
  7916.         hint = "Entity to point at"
  7917.       }
  7918.       _light: =
  7919.       {
  7920.         txt = "&"
  7921.         hint = "Light color"
  7922.       }
  7923.       _light: =
  7924.       {
  7925.         Txt = "&"
  7926.         Typ = "LU3"
  7927.         Hint = "light color (not the intensity, only the color)"
  7928.       }
  7929.       brightness: =
  7930.       {
  7931.         txt = "&"
  7932.         hint = "Light brightness"
  7933.       }
  7934.       _inner_cone: =
  7935.       {
  7936.         txt = "&"
  7937.         hint = "Inner (bright) angle"
  7938.       }
  7939.       _cone: =
  7940.       {
  7941.         txt = "&"
  7942.         hint = "Outer (fading) angle"
  7943.       }
  7944.       pitch: =
  7945.       {
  7946.         txt = "&"
  7947.         hint = "Pitch"
  7948.       }
  7949.       distance: =
  7950.       {
  7951.         txt = "&"
  7952.         hint = "Maximum distance"
  7953.       }
  7954.       spotlight_radius: =
  7955.       {
  7956.         txt = "&"
  7957.         hint = "Spotlight end radius"
  7958.       }
  7959.       style: =
  7960.       {
  7961.         txt = "&"
  7962.         hint = "Appearance"
  7963.         typ = "C"
  7964.         items = "Normal"$0D"Fluorescent flicker"$0D"Slow, strong pulse"$0D"Slo"
  7965.          "w pulse, noblack"$0D"Gentle pulse"$0D"Flicker A"$0D"Flicker B"$0D"Ca"
  7966.          "ndle A"$0D"Candle B"$0D"Candle C"$0D"Fast strobe"$0D"Slow strobe"
  7967.         values = "0"$0D"10"$0D"2"$0D"11"$0D"5"$0D"1"$0D"6"$0D"3"$0D"7"$0D"8"$0D
  7968.          "4"$0D"9"
  7969.       }
  7970.       spawnflags: =
  7971.       {
  7972.         txt = "&"
  7973.         typ = "X1"
  7974.         cap = "No world light"
  7975.       }
  7976.       spawnflags: =
  7977.       {
  7978.         txt = "&"
  7979.         typ = "X2"
  7980.         cap = "No model light"
  7981.       }
  7982.       spawnflags: =
  7983.       {
  7984.         txt = "&"
  7985.         typ = "X4"
  7986.         cap = "Add Displacement Alpha"
  7987.       }
  7988.       spawnflags: =
  7989.       {
  7990.         txt = "&"
  7991.         typ = "X8"
  7992.         cap = "Subtract Displacement Alpha"
  7993.       }
  7994.       input#Color: =
  7995.       {
  7996.         txt = "&"
  7997.         hint = "Set the light's render color (R G B)."
  7998.       }
  7999.       input#brightness: =
  8000.       {
  8001.         txt = "&"
  8002.         hint = "Set the light brightness."
  8003.       }
  8004.       input#distance: =
  8005.       {
  8006.         txt = "&"
  8007.         hint = "Set the maximum light distance."
  8008.       }
  8009.       input#_inner_cone: =
  8010.       {
  8011.         txt = "&"
  8012.         hint = "Set the inner (bright) angle."
  8013.       }
  8014.       input#_cone: =
  8015.       {
  8016.         txt = "&"
  8017.         hint = "Set the outer (fading) angle."
  8018.       }
  8019.       input#spotlight_radius: =
  8020.       {
  8021.         txt = "&"
  8022.         hint = "Set the radius of the spotlight at the end point."
  8023.       }
  8024.       input#style: =
  8025.       {
  8026.         txt = "&"
  8027.         hint = "Change the lightstyle (see Appearance field for possible value"
  8028.          "s)."
  8029.       }
  8030.       input#TurnOn: =
  8031.       {
  8032.         txt = "&"
  8033.         hint = "Turn the light off."
  8034.       }
  8035.       input#TurnOff: =
  8036.       {
  8037.         txt = "&"
  8038.         hint = "Turn the light on."
  8039.       }
  8040.       input#Toggle: =
  8041.       {
  8042.         txt = "&"
  8043.         hint = "Toggle the light on/off."
  8044.       }
  8045.     }
  8046.     shadow_control:form =
  8047.     {
  8048.       t_Targetname = !
  8049.       angles: =
  8050.       {
  8051.         txt = "&"
  8052.         hint = "Pitch Yaw Roll (Y Z X)"
  8053.       }
  8054.       color: =
  8055.       {
  8056.         txt = "&"
  8057.         hint = "Shadow Color"
  8058.       }
  8059.       color: =
  8060.       {
  8061.         Txt = "&"
  8062.         Typ = "LU3"
  8063.         Hint = "Shadow Color"
  8064.       }
  8065.       distance: =
  8066.       {
  8067.         txt = "&"
  8068.         hint = "Maximum Distance"
  8069.       }
  8070.       input#color: =
  8071.       {
  8072.         txt = "&"
  8073.         hint = "Set the shadow color."
  8074.       }
  8075.       input#direction: =
  8076.       {
  8077.         txt = "&"
  8078.         hint = "Set the shadow direction."
  8079.       }
  8080.       input#SetDistance: =
  8081.       {
  8082.         txt = "&"
  8083.         hint = "Set the maximum shadow cast distance."
  8084.       }
  8085.       input#SetAngles: =
  8086.       {
  8087.         txt = "&"
  8088.         hint = "Set the shadow direction."
  8089.       }
  8090.     }
  8091.     t_KeyFrame:incl =
  8092.     {
  8093.       NextKey: =
  8094.       {
  8095.         txt = "&"
  8096.         hint = "Next KeyFrame"
  8097.       }
  8098.       MoveSpeed: =
  8099.       {
  8100.         txt = "&"
  8101.         hint = "Speed (units per second)"
  8102.       }
  8103.     }
  8104.     t_Mover:incl =
  8105.     {
  8106.       PositionInterpolator: =
  8107.       {
  8108.         txt = "&"
  8109.         hint = "Position Interpolator"
  8110.         typ = "C"
  8111.         items = "Linear"$0D"Catmull-Rom Spline"
  8112.         values = "0"$0D"1"
  8113.       }
  8114.     }
  8115.     func_movelinear:form =
  8116.     {
  8117.       t_Targetname = !
  8118.       t_Parentname = !
  8119.       t_Origin = !
  8120.       movedir: =
  8121.       {
  8122.         txt = "&"
  8123.         hint = "Move Direction (Pitch Yaw Roll)"
  8124.       }
  8125.       spawnflags: =
  8126.       {
  8127.         txt = "&"
  8128.         typ = "X8"
  8129.         cap = "Not Solid"
  8130.       }
  8131.       startposition: =
  8132.       {
  8133.         txt = "&"
  8134.         hint = "Start Position"
  8135.       }
  8136.       speed: =
  8137.       {
  8138.         txt = "&"
  8139.         hint = "Speed"
  8140.       }
  8141.       movedistance: =
  8142.       {
  8143.         txt = "&"
  8144.         hint = "Move Distance"
  8145.       }
  8146.       blockdamage: =
  8147.       {
  8148.         txt = "&"
  8149.         hint = "Block Damage"
  8150.       }
  8151.       startsound: =
  8152.       {
  8153.         txt = "&"
  8154.         hint = "Sound played when the brush starts moving."
  8155.       }
  8156.       stopsound: =
  8157.       {
  8158.         txt = "&"
  8159.         hint = "Sound played when the brush stops moving."
  8160.       }
  8161.       input#Open: =
  8162.       {
  8163.         txt = "&"
  8164.         hint = "Move the brush to the end position (starting position + (move "
  8165.          "direction * move distance))."
  8166.       }
  8167.       input#Close: =
  8168.       {
  8169.         txt = "&"
  8170.         hint = "Move the brush to the starting position."
  8171.       }
  8172.       input#SetPosition: =
  8173.       {
  8174.         txt = "&"
  8175.         hint = "Move the brush to a specific position between 0.0 and 1.0, whe"
  8176.          "re 0 is the starting position and 1 is the starting position + (move"
  8177.          " direction * move distance)."
  8178.       }
  8179.       output#OnFullyOpen: =
  8180.       {
  8181.         txt = "&"
  8182.         hint = "Fired when the brush reaches the end position (starting positi"
  8183.          "on + (move direction * move distance))."
  8184.       }
  8185.       output#OnFullyClosed: =
  8186.       {
  8187.         txt = "&"
  8188.         hint = "Fired when the brush reaches the starting position."
  8189.       }
  8190.     }
  8191.  
  8192.     t_func_movelinear:incl =
  8193.     {
  8194.       t_Targetname = !
  8195.       t_Parentname = !
  8196.       t_Origin = !
  8197.       movedir: =
  8198.       {
  8199.         txt = "&"
  8200.         hint = "Move Direction (Pitch Yaw Roll)"
  8201.       }
  8202.       spawnflags: =
  8203.       {
  8204.         txt = "&"
  8205.         typ = "X8"
  8206.         cap = "Not Solid"
  8207.       }
  8208.       startposition: =
  8209.       {
  8210.         txt = "&"
  8211.         hint = "Start Position"
  8212.       }
  8213.       speed: =
  8214.       {
  8215.         txt = "&"
  8216.         hint = "Speed"
  8217.       }
  8218.       movedistance: =
  8219.       {
  8220.         txt = "&"
  8221.         hint = "Move Distance"
  8222.       }
  8223.       blockdamage: =
  8224.       {
  8225.         txt = "&"
  8226.         hint = "Block Damage"
  8227.       }
  8228.       startsound: =
  8229.       {
  8230.         txt = "&"
  8231.         hint = "Sound played when the brush starts moving."
  8232.       }
  8233.       stopsound: =
  8234.       {
  8235.         txt = "&"
  8236.         hint = "Sound played when the brush stops moving."
  8237.       }
  8238.       input#Open: =
  8239.       {
  8240.         txt = "&"
  8241.         hint = "Move the brush to the end position (starting position + (move "
  8242.          "direction * move distance))."
  8243.       }
  8244.       input#Close: =
  8245.       {
  8246.         txt = "&"
  8247.         hint = "Move the brush to the starting position."
  8248.       }
  8249.       input#SetPosition: =
  8250.       {
  8251.         txt = "&"
  8252.         hint = "Move the brush to a specific position between 0.0 and 1.0, whe"
  8253.          "re 0 is the starting position and 1 is the starting position + (move"
  8254.          " direction * move distance)."
  8255.       }
  8256.       output#OnFullyOpen: =
  8257.       {
  8258.         txt = "&"
  8259.         hint = "Fired when the brush reaches the end position (starting positi"
  8260.          "on + (move direction * move distance))."
  8261.       }
  8262.       output#OnFullyClosed: =
  8263.       {
  8264.         txt = "&"
  8265.         hint = "Fired when the brush reaches the starting position."
  8266.       }
  8267.     }
  8268.  
  8269.     func_water_analog:form =
  8270.     {
  8271.       t_Targetname = !
  8272.       t_Parentname = !
  8273.       t_Origin = !
  8274.       movedir: =
  8275.       {
  8276.         txt = "&"
  8277.         hint = "Move Direction (Pitch Yaw Roll)"
  8278.       }
  8279.       startposition: =
  8280.       {
  8281.         txt = "&"
  8282.         hint = "Start Position"
  8283.       }
  8284.       speed: =
  8285.       {
  8286.         txt = "&"
  8287.         hint = "Speed"
  8288.       }
  8289.       movedistance: =
  8290.       {
  8291.         txt = "&"
  8292.         hint = "Move Distance"
  8293.       }
  8294.       startsound: =
  8295.       {
  8296.         txt = "&"
  8297.         hint = "Sound played when the water brush starts moving."
  8298.       }
  8299.       stopsound: =
  8300.       {
  8301.         txt = "&"
  8302.         hint = "Sound played when the water brush stops moving."
  8303.       }
  8304.       WaveHeight: =
  8305.       {
  8306.         txt = "&"
  8307.         hint = "Wave Height"
  8308.       }
  8309.       input#Open: =
  8310.       {
  8311.         txt = "&"
  8312.         hint = "Move the water brush to the end position (starting position + "
  8313.          "(move direction * move distance))."
  8314.       }
  8315.       input#Close: =
  8316.       {
  8317.         txt = "&"
  8318.         hint = "Move the water brush to the starting position."
  8319.       }
  8320.       input#SetPosition: =
  8321.       {
  8322.         txt = "&"
  8323.         hint = "Move the water brush to a specific position between 0.0 and 1."
  8324.          "0, where 0 is the starting position and 1 is the starting position +"
  8325.          " (move direction * move distance)."
  8326.       }
  8327.       output#OnFullyOpen: =
  8328.       {
  8329.         txt = "&"
  8330.         hint = "Fired when the water brush reaches the end position (starting "
  8331.          "position + (move direction * move distance))."
  8332.       }
  8333.       output#OnFullyClosed: =
  8334.       {
  8335.         txt = "&"
  8336.         hint = "Fired when the water brush reaches the starting position."
  8337.       }
  8338.     }
  8339.     func_rotating:form =
  8340.     {
  8341.       t_Targetname = !
  8342.       t_Parentname = !
  8343.       t_Origin = !
  8344.       t_Angles = !
  8345.       t_RenderFields = !
  8346.       t_Shadow = !
  8347.       maxspeed: =
  8348.       {
  8349.         txt = "&"
  8350.         hint = "Max Rotation Speed"
  8351.       }
  8352.       fanfriction: =
  8353.       {
  8354.         txt = "&"
  8355.         hint = "Friction (0 - 100%)"
  8356.       }
  8357.       message: =
  8358.       {
  8359.         txt = "&"
  8360.         hint = "Rotating sound WAV"
  8361.       }
  8362.       volume: =
  8363.       {
  8364.         txt = "&"
  8365.         hint = "Volume (10 = loudest)"
  8366.       }
  8367.       spawnflags: =
  8368.       {
  8369.         txt = "&"
  8370.         typ = "X1"
  8371.         cap = "Start ON"
  8372.       }
  8373.       spawnflags: =
  8374.       {
  8375.         txt = "&"
  8376.         typ = "X2"
  8377.         cap = "Reverse Direction"
  8378.       }
  8379.       spawnflags: =
  8380.       {
  8381.         txt = "&"
  8382.         typ = "X4"
  8383.         cap = "X Axis"
  8384.       }
  8385.       spawnflags: =
  8386.       {
  8387.         txt = "&"
  8388.         typ = "X8"
  8389.         cap = "Y Axis"
  8390.       }
  8391.       spawnflags: =
  8392.       {
  8393.         txt = "&"
  8394.         typ = "X16"
  8395.         cap = "Acc/Dcc"
  8396.       }
  8397.       spawnflags: =
  8398.       {
  8399.         txt = "&"
  8400.         typ = "X32"
  8401.         cap = "Fan Pain"
  8402.       }
  8403.       spawnflags: =
  8404.       {
  8405.         txt = "&"
  8406.         typ = "X64"
  8407.         cap = "Not Solid"
  8408.       }
  8409.       spawnflags: =
  8410.       {
  8411.         txt = "&"
  8412.         typ = "X128"
  8413.         cap = "Small Sound Radius"
  8414.       }
  8415.       spawnflags: =
  8416.       {
  8417.         txt = "&"
  8418.         typ = "X256"
  8419.         cap = "Medium Sound Radius"
  8420.       }
  8421.       spawnflags: =
  8422.       {
  8423.         txt = "&"
  8424.         typ = "X512"
  8425.         cap = "Large Sound Radius"
  8426.       }
  8427.       _minlight: =
  8428.       {
  8429.         txt = "&"
  8430.         hint = "Minimum Light Level"
  8431.       }
  8432.       dmg: =
  8433.       {
  8434.         txt = "&"
  8435.         hint = "Blocking Damage"
  8436.       }
  8437.       solidbsp: =
  8438.       {
  8439.         txt = "&"
  8440.         hint = "Solid Type"
  8441.         typ = "C"
  8442.         items = "VPhysics"$0D"BSP"
  8443.         values = "0"$0D"1"
  8444.       }
  8445.       input#SetSpeed: =
  8446.       {
  8447.         txt = "&"
  8448.         hint = "Set the speed as a ratio of the specified Max Rotation Speed, "
  8449.          "where 0 is stopped and 1 is the Max Rotation Speed.."
  8450.       }
  8451.       input#Start: =
  8452.       {
  8453.         txt = "&"
  8454.         hint = "Start the rotator rotating."
  8455.       }
  8456.       input#Stop: =
  8457.       {
  8458.         txt = "&"
  8459.         hint = "Stop the rotator from rotating."
  8460.       }
  8461.       input#StopAtStartPos: =
  8462.       {
  8463.         txt = "&"
  8464.         hint = "Stop the rotator from rotating when it gets around to the star"
  8465.          "t position again (on its rotation axis)."
  8466.       }
  8467.       input#StartForward: =
  8468.       {
  8469.         txt = "&"
  8470.         hint = "Start the rotator rotating forward."
  8471.       }
  8472.       input#StartBackward: =
  8473.       {
  8474.         txt = "&"
  8475.         hint = "Start the rotator rotating backward."
  8476.       }
  8477.       input#Toggle: =
  8478.       {
  8479.         txt = "&"
  8480.         hint = "Toggle the rotator between rotating and not rotating."
  8481.       }
  8482.       input#Reverse: =
  8483.       {
  8484.         txt = "&"
  8485.         hint = "Reverse the direction of rotation of the rotator."
  8486.       }
  8487.     }
  8488.     func_platrot:form =
  8489.     {
  8490.       t_Targetname = !
  8491.       t_Parentname = !
  8492.       t_Origin = !
  8493.       t_Angles = !
  8494.       t_RenderFields = !
  8495.       t_BasePlat = !
  8496.       t_Shadow = !
  8497.       spawnflags: =
  8498.       {
  8499.         txt = "&"
  8500.         typ = "X1"
  8501.         cap = "Toggle"
  8502.       }
  8503.       spawnflags: =
  8504.       {
  8505.         txt = "&"
  8506.         typ = "X64"
  8507.         cap = "X Axis"
  8508.       }
  8509.       spawnflags: =
  8510.       {
  8511.         txt = "&"
  8512.         typ = "X128"
  8513.         cap = "Y Axis"
  8514.       }
  8515.       noise1: =
  8516.       {
  8517.         txt = "&"
  8518.         hint = "Movement Sound"
  8519.       }
  8520.       noise2: =
  8521.       {
  8522.         txt = "&"
  8523.         hint = "Stop Sound"
  8524.       }
  8525.       speed: =
  8526.       {
  8527.         txt = "&"
  8528.         hint = "Speed of Rotation"
  8529.       }
  8530.       height: =
  8531.       {
  8532.         txt = "&"
  8533.         hint = "Travel Altitude"
  8534.       }
  8535.       rotation: =
  8536.       {
  8537.         txt = "&"
  8538.         hint = "Spin amount"
  8539.       }
  8540.       _minlight: =
  8541.       {
  8542.         txt = "&"
  8543.         hint = "Minimum Light Level"
  8544.       }
  8545.     }
  8546.     keyframe_track:form =
  8547.     {
  8548.       bbox = '-6 -6 -6 6 6 6'
  8549.       t_Targetname = !
  8550.       t_Parentname = !
  8551.       t_Angles = !
  8552.       t_KeyFrame = !
  8553.     }
  8554.     move_keyframed:form =
  8555.     {
  8556.       bbox = '-8 -8 -8 8 8 8'
  8557.       t_Targetname = !
  8558.       t_Parentname = !
  8559.       t_KeyFrame = !
  8560.       t_Mover = !
  8561.     }
  8562.     move_track:form =
  8563.     {
  8564.       bbox = '-8 -8 -8 8 8 8'
  8565.       t_Targetname = !
  8566.       t_Parentname = !
  8567.       t_Mover = !
  8568.       t_KeyFrame = !
  8569.       WheelBaseLength: =
  8570.       {
  8571.         txt = "&"
  8572.         hint = "Distance between the wheels"
  8573.       }
  8574.       Damage: =
  8575.       {
  8576.         txt = "&"
  8577.         hint = "Damage done to blocking entities"
  8578.       }
  8579.       NoRotate: =
  8580.       {
  8581.         txt = "&"
  8582.         hint = "Turn to face down path"
  8583.         typ = "C"
  8584.         items = "Yes"$0D"No"
  8585.         values = "0"$0D"1"
  8586.       }
  8587.     }
  8588.     t_RopeKeyFrame:incl =
  8589.     {
  8590.       t_DXLevelChoice = !
  8591.       spawnflags: =
  8592.       {
  8593.         txt = "&"
  8594.         typ = "X1"
  8595.         cap = "Auto Resize"
  8596.       }
  8597.       Slack: =
  8598.       {
  8599.         txt = "&"
  8600.         hint = "Slack"
  8601.       }
  8602.       Type: =
  8603.       {
  8604.         txt = "&"
  8605.         hint = "Type"
  8606.         typ = "C"
  8607.         items = "Rope"$0D"Semi-rigid"$0D"Rigid"
  8608.         values = "0"$0D"1"$0D"2"
  8609.       }
  8610.       Subdiv: =
  8611.       {
  8612.         txt = "&"
  8613.         hint = "Subdivision"
  8614.       }
  8615.       Barbed: =
  8616.       {
  8617.         txt = "&"
  8618.         hint = "Barbed"
  8619.         typ = "C"
  8620.         items = "No"$0D"Yes"
  8621.         values = "0"$0D"1"
  8622.       }
  8623.       Width: =
  8624.       {
  8625.         txt = "&"
  8626.         hint = "Width (1-64)"
  8627.       }
  8628.       TextureScale: =
  8629.       {
  8630.         txt = "&"
  8631.         hint = "Texture Scale"
  8632.       }
  8633.       Collide: =
  8634.       {
  8635.         txt = "&"
  8636.         hint = "Collide with world"
  8637.         typ = "C"
  8638.         items = "No"$0D"Yes"
  8639.         values = "0"$0D"1"
  8640.       }
  8641.       Dangling: =
  8642.       {
  8643.         txt = "&"
  8644.         hint = "Start Dangling"
  8645.         typ = "C"
  8646.         items = "No"$0D"Yes"
  8647.         values = "0"$0D"1"
  8648.       }
  8649.       Breakable: =
  8650.       {
  8651.         txt = "&"
  8652.         hint = "Breakable"
  8653.         typ = "C"
  8654.         items = "No"$0D"Yes"
  8655.         values = "0"$0D"1"
  8656.       }
  8657.       RopeMaterial: =
  8658.       {
  8659.         txt = "&"
  8660.         hint = "Rope Material"
  8661.         typ = "ET"
  8662.         Cap = "texture..."
  8663.       }
  8664.       input#SetScrollSpeed: =
  8665.       {
  8666.         txt = "&"
  8667.         hint = "Set the speed at which the texture scrolls."
  8668.       }
  8669.       input#SetForce: =
  8670.       {
  8671.         txt = "&"
  8672.         hint = "Apply a force instantaneously to the rope. The parameter shoul"
  8673.          "d be a vector containing the force to be applied (X Y Z)."
  8674.       }
  8675.       input#Break: =
  8676.       {
  8677.         txt = "&"
  8678.         hint = "Break the rope, if it's marked to do so."
  8679.       }
  8680.     }
  8681.     keyframe_rope:form =
  8682.     {
  8683.       t_Targetname = !
  8684.       t_Parentname = !
  8685.       t_KeyFrame = !
  8686.       t_RopeKeyFrame = !
  8687.     }
  8688.     move_rope:form =
  8689.     {
  8690.       t_Targetname = !
  8691.       t_Parentname = !
  8692.       t_KeyFrame = !
  8693.       t_RopeKeyFrame = !
  8694.       PositionInterpolator: =
  8695.       {
  8696.         txt = "&"
  8697.         hint = "Position Interpolator"
  8698.         typ = "C"
  8699.       }
  8700.     }
  8701.     t_Button:incl =
  8702.     {
  8703.       input#Lock: =
  8704.       {
  8705.         txt = "&"
  8706.         hint = "Lock the button, preventing it from functioning."
  8707.       }
  8708.       input#Unlock: =
  8709.       {
  8710.         txt = "&"
  8711.         hint = "Unlock the button, allowing it to function."
  8712.       }
  8713.       input#Press: =
  8714.       {
  8715.         txt = "&"
  8716.         hint = "Activate the button, as if it was pressed."
  8717.       }
  8718.       output#OnDamaged: =
  8719.       {
  8720.         txt = "&"
  8721.         hint = "Fired when the button is damaged."
  8722.       }
  8723.       output#OnPressed: =
  8724.       {
  8725.         txt = "&"
  8726.         hint = "Fired when the button is pressed."
  8727.       }
  8728.       output#OnUseLocked: =
  8729.       {
  8730.         txt = "&"
  8731.         hint = "Fired when the button is used while locked."
  8732.       }
  8733.       output#OnIn: =
  8734.       {
  8735.         txt = "&"
  8736.         hint = "Fired when the button reaches the in/pressed position."
  8737.       }
  8738.       output#OnOut: =
  8739.       {
  8740.         txt = "&"
  8741.         hint = "Fired when the button reaches the out/released position."
  8742.       }
  8743.     }
  8744.     func_button:form =
  8745.     {
  8746.       t_Targetname = !
  8747.       t_Parentname = !
  8748.       t_Origin = !
  8749.       t_RenderFields = !
  8750.       t_Button = !
  8751.       movedir: =
  8752.       {
  8753.         txt = "&"
  8754.         hint = "Move Direction (Pitch Yaw Roll)"
  8755.       }
  8756.       speed: =
  8757.       {
  8758.         txt = "&"
  8759.         hint = "Speed"
  8760.       }
  8761.       health: =
  8762.       {
  8763.         txt = "&"
  8764.         hint = "Health (Obsolete)"
  8765.       }
  8766.       lip: =
  8767.       {
  8768.         txt = "&"
  8769.         hint = "Lip"
  8770.       }
  8771.       master: =
  8772.       {
  8773.         txt = "&"
  8774.         hint = "Master (Obsolete)"
  8775.       }
  8776.       sounds: =
  8777.       {
  8778.         txt = "&"
  8779.         hint = "Sounds"
  8780.         typ = "C"
  8781.         items = "None (Silent)"$0D"Big zap & Warmup"$0D"Access Denied"$0D"Acce"
  8782.          "ss Granted"$0D"Quick Combolock"$0D"Power Deadbolt 1"$0D"Power Deadbo"
  8783.          "lt 2"$0D"Plunger"$0D"Small zap"$0D"Keycard Sound"$0D"Buzz"$0D"Buzz O"
  8784.          "ff"$0D"latch locked"$0D"Latch Unlocked"$0D"Lightswitch"$0D"small ble"
  8785.          "ek"$0D"small deny"$0D"small doop"$0D"small tech deny"$0D"click and c"
  8786.          "ombine screen fuzz"$0D"roomy beep"$0D"lever or wheel: turn + move sq"
  8787.          "eek"$0D"lever or wheel: latch + release gas"$0D"lever or wheel: ratc"
  8788.          "het + sqeek"$0D"lever or wheel: large ratchet"$0D"lever or wheel: cl"
  8789.          "anky + gas release"$0D"lever or wheel: latch + large metal thud"$0D"l"
  8790.          "ever or wheel: smaller ratchet"$0D"lever or wheel: smaller lever mov"
  8791.          "e"$0D"shock buzz"$0D"clickbeep"$0D"tech blip"$0D"clickbeepbeep open"$0D
  8792.          "small high blip"$0D"small tech fuzz blip"$0D"small click bleep (chan"
  8793.          "ge to lightswitch)"$0D"combine door lock - locked"$0D"combine blip g"
  8794.          "rowl"$0D"combine squick growl"$0D"combine whine purr"$0D"combine cli"
  8795.          "ck talk"$0D"combine click growl fizz"$0D"combine click fizz (deny)"$0D
  8796.          "combine click talker"
  8797.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"1"
  8798.          "0"$0D"11"$0D"12"$0D"13"$0D"14"$0D"15"$0D"16"$0D"17"$0D"18"$0D"19"$0D
  8799.          "20"$0D"21"$0D"22"$0D"23"$0D"24"$0D"25"$0D"26"$0D"27"$0D"28"$0D"31"$0D
  8800.          "32"$0D"33"$0D"34"$0D"35"$0D"36"$0D"37"$0D"40"$0D"41"$0D"42"$0D"43"$0D
  8801.          "44"$0D"45"$0D"46"$0D"47"
  8802.       }
  8803.       wait: =
  8804.       {
  8805.         txt = "&"
  8806.         hint = "Delay Before Reset (-1 stay)"
  8807.       }
  8808.       spawnflags: =
  8809.       {
  8810.         txt = "&"
  8811.         typ = "X1"
  8812.         cap = "Don't move"
  8813.       }
  8814.       spawnflags: =
  8815.       {
  8816.         txt = "&"
  8817.         typ = "X32"
  8818.         cap = "Toggle"
  8819.       }
  8820.       spawnflags: =
  8821.       {
  8822.         txt = "&"
  8823.         typ = "X256"
  8824.         cap = "Touch Activates"
  8825.       }
  8826.       spawnflags: =
  8827.       {
  8828.         txt = "&"
  8829.         typ = "X512"
  8830.         cap = "Damage Activates"
  8831.       }
  8832.       spawnflags: =
  8833.       {
  8834.         txt = "&"
  8835.         typ = "X1024"
  8836.         cap = "Use Activates"
  8837.       }
  8838.       spawnflags: =
  8839.       {
  8840.         txt = "&"
  8841.         typ = "X2048"
  8842.         cap = "Starts locked"
  8843.       }
  8844.       spawnflags: =
  8845.       {
  8846.         txt = "&"
  8847.         typ = "X4096"
  8848.         cap = "Sparks"
  8849.       }
  8850.       locked_sound: =
  8851.       {
  8852.         txt = "&"
  8853.         hint = "Locked Sound"
  8854.         typ = "C"
  8855.         items = "None"$0D"Access Denied"$0D"Small zap"$0D"Buzz"$0D"Buzz Off"$0D
  8856.          "Latch Locked"
  8857.         values = "0"$0D"2"$0D"8"$0D"10"$0D"11"$0D"12"
  8858.       }
  8859.       unlocked_sound: =
  8860.       {
  8861.         txt = "&"
  8862.         hint = "Unlocked Sound"
  8863.         typ = "C"
  8864.         items = "None"$0D"Big zap & Warmup"$0D"Access Granted"$0D"Quick Combol"
  8865.          "ock"$0D"Power Deadbolt 1"$0D"Power Deadbolt 2"$0D"Plunger"$0D"Small "
  8866.          "zap"$0D"Keycard Sound"$0D"Buzz"$0D"Latch Unlocked"$0D"Lightswitch"
  8867.         values = "0"$0D"1"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"10"$0D
  8868.          "13"$0D"14"
  8869.       }
  8870.       locked_sentence: =
  8871.       {
  8872.         txt = "&"
  8873.         hint = "Locked Sentence"
  8874.         typ = "C"
  8875.         items = "None"$0D"Gen. Access Denied"$0D"Security Lockout"$0D"Blast Do"
  8876.          "or"$0D"Fire Door"$0D"Chemical Door"$0D"Radiation Door"$0D"Gen. Conta"
  8877.          "inment"$0D"Maintenance Door"$0D"Broken Shut Door"
  8878.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"
  8879.       }
  8880.       unlocked_sentence: =
  8881.       {
  8882.         txt = "&"
  8883.         hint = "Unlocked Sentence"
  8884.         typ = "C"
  8885.         items = "None"$0D"Gen. Access Granted"$0D"Security Disengaged"$0D"Blas"
  8886.          "t Door"$0D"Fire Door"$0D"Chemical Door"$0D"Radiation Door"$0D"Gen. C"
  8887.          "ontainment"$0D"Maintenance area"
  8888.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"
  8889.       }
  8890.       _minlight: =
  8891.       {
  8892.         txt = "&"
  8893.         hint = "Minimum Light Level"
  8894.       }
  8895.     }
  8896.     func_rot_button:form =
  8897.     {
  8898.       t_Targetname = !
  8899.       t_Parentname = !
  8900.       t_Origin = !
  8901.       t_Angles = !
  8902.       t_Global = !
  8903.       t_Button = !
  8904.       master: =
  8905.       {
  8906.         txt = "&"
  8907.         hint = "Master (Obsolete)"
  8908.       }
  8909.       speed: =
  8910.       {
  8911.         txt = "&"
  8912.         hint = "Speed"
  8913.       }
  8914.       health: =
  8915.       {
  8916.         txt = "&"
  8917.         hint = "Health (Obsolete)"
  8918.       }
  8919.       sounds: =
  8920.       {
  8921.         txt = "&"
  8922.         hint = "Sounds"
  8923.         typ = "C"
  8924.         items = "None (Silent)"$0D"Squeaky"$0D"Squeaky Pneumatic"$0D"Ratchet G"
  8925.          "roan"$0D"Clean Ratchet"$0D"Gas Clunk"
  8926.         values = "0"$0D"21"$0D"22"$0D"23"$0D"24"$0D"25"
  8927.       }
  8928.       wait: =
  8929.       {
  8930.         txt = "&"
  8931.         hint = "Delay Before Reset (-1 stay)"
  8932.       }
  8933.       distance: =
  8934.       {
  8935.         txt = "&"
  8936.         hint = "Distance (deg)"
  8937.       }
  8938.       spawnflags: =
  8939.       {
  8940.         txt = "&"
  8941.         typ = "X1"
  8942.         cap = "Not solid"
  8943.       }
  8944.       spawnflags: =
  8945.       {
  8946.         txt = "&"
  8947.         typ = "X2"
  8948.         cap = "Reverse Dir"
  8949.       }
  8950.       spawnflags: =
  8951.       {
  8952.         txt = "&"
  8953.         typ = "X32"
  8954.         cap = "Toggle"
  8955.       }
  8956.       spawnflags: =
  8957.       {
  8958.         txt = "&"
  8959.         typ = "X64"
  8960.         cap = "X Axis"
  8961.       }
  8962.       spawnflags: =
  8963.       {
  8964.         txt = "&"
  8965.         typ = "X128"
  8966.         cap = "Y Axis"
  8967.       }
  8968.       spawnflags: =
  8969.       {
  8970.         txt = "&"
  8971.         typ = "X256"
  8972.         cap = "Touch Activates"
  8973.       }
  8974.       spawnflags: =
  8975.       {
  8976.         txt = "&"
  8977.         typ = "X512"
  8978.         cap = "Damage Activates"
  8979.       }
  8980.       spawnflags: =
  8981.       {
  8982.         txt = "&"
  8983.         typ = "X1024"
  8984.         cap = "Use Activates"
  8985.       }
  8986.       spawnflags: =
  8987.       {
  8988.         txt = "&"
  8989.         typ = "X2048"
  8990.         cap = "Starts locked"
  8991.       }
  8992.       _minlight: =
  8993.       {
  8994.         txt = "&"
  8995.         hint = "Minimum Light Level"
  8996.       }
  8997.     }
  8998.     momentary_rot_button:form =
  8999.     {
  9000.       t_Targetname = !
  9001.       t_Parentname = !
  9002.       t_Origin = !
  9003.       t_Angles = !
  9004.       t_RenderFields = !
  9005.       speed: =
  9006.       {
  9007.         txt = "&"
  9008.         hint = "Speed (deg/sec)"
  9009.       }
  9010.       master: =
  9011.       {
  9012.         txt = "&"
  9013.         hint = "Master (Obsolete)"
  9014.       }
  9015.       sounds: =
  9016.       {
  9017.         txt = "&"
  9018.         hint = "Sounds"
  9019.         typ = "C"
  9020.         items = "None"$0D"Big zap & Warmup"$0D"Access Denied"$0D"Access Grante"
  9021.          "d"$0D"Quick Combolock"$0D"Power Deadbolt 1"$0D"Power Deadbolt 2"$0D"P"
  9022.          "lunger"$0D"Small zap"$0D"Keycard Sound"$0D"Squeaky"$0D"Squeaky Pneum"
  9023.          "atic"$0D"Ratchet Groan"$0D"Clean Ratchet"$0D"Gas Clunk"
  9024.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"2"
  9025.          "1"$0D"22"$0D"23"$0D"24"$0D"25"
  9026.       }
  9027.       distance: =
  9028.       {
  9029.         txt = "&"
  9030.         hint = "Distance"
  9031.       }
  9032.       returnspeed: =
  9033.       {
  9034.         txt = "&"
  9035.         hint = "Auto-return speed"
  9036.       }
  9037.       spawnflags: =
  9038.       {
  9039.         txt = "&"
  9040.         typ = "X1"
  9041.         cap = "Not Solid"
  9042.       }
  9043.       spawnflags: =
  9044.       {
  9045.         txt = "&"
  9046.         typ = "X32"
  9047.         cap = "Toggle (Disable Auto Return)"
  9048.       }
  9049.       spawnflags: =
  9050.       {
  9051.         txt = "&"
  9052.         typ = "X64"
  9053.         cap = "X Axis"
  9054.       }
  9055.       spawnflags: =
  9056.       {
  9057.         txt = "&"
  9058.         typ = "X128"
  9059.         cap = "Y Axis"
  9060.       }
  9061.       spawnflags: =
  9062.       {
  9063.         txt = "&"
  9064.         typ = "X1024"
  9065.         cap = "Use Activates"
  9066.       }
  9067.       spawnflags: =
  9068.       {
  9069.         txt = "&"
  9070.         typ = "X2048"
  9071.         cap = "Starts locked"
  9072.       }
  9073.       spawnflags: =
  9074.       {
  9075.         txt = "&"
  9076.         typ = "X8192"
  9077.         cap = "Jiggle when used while locked"
  9078.       }
  9079.       _minlight: =
  9080.       {
  9081.         txt = "&"
  9082.         hint = "Minimum Light Level"
  9083.       }
  9084.       startposition: =
  9085.       {
  9086.         txt = "&"
  9087.         hint = "Start Position"
  9088.       }
  9089.       startdirection: =
  9090.       {
  9091.         txt = "&"
  9092.         hint = "Start Direction"
  9093.         typ = "C"
  9094.         items = "Forward"$0D"Backward"
  9095.         values = "-1"$0D"1"
  9096.       }
  9097.       solidbsp: =
  9098.       {
  9099.         txt = "&"
  9100.         hint = "Solid BSP"
  9101.         typ = "C"
  9102.         items = "No"$0D"Yes"
  9103.         values = "0"$0D"1"
  9104.       }
  9105.       input#Lock: =
  9106.       {
  9107.         txt = "&"
  9108.         hint = "Lock the button, preventing it from functioning."
  9109.       }
  9110.       input#Unlock: =
  9111.       {
  9112.         txt = "&"
  9113.         hint = "Unlock the button, allowing it to function."
  9114.       }
  9115.       input#SetPosition: =
  9116.       {
  9117.         txt = "&"
  9118.         hint = "Move to a position. The parameter must be a value between 0 an"
  9119.          "d 1, where 0 is the unrotated position and 1 is the rotated position"
  9120.          " + 'Distance'."
  9121.       }
  9122.       input#SetPositionImmediately: =
  9123.       {
  9124.         txt = "&"
  9125.         hint = "Immediately teleport to a position. The parameter must be a va"
  9126.          "lue between 0 and 1, where 0 is the unrotated position and 1 is the "
  9127.          "rotated position + 'Distance'."
  9128.       }
  9129.       output#Position: =
  9130.       {
  9131.         txt = "&"
  9132.         hint = "Fired whenever the button moves. The output is the position of"
  9133.          " button from 0 to 1, where 0 is the unrotated position and 1 is the "
  9134.          "rotated position + 'Distance'."
  9135.       }
  9136.       output#OnPressed: =
  9137.       {
  9138.         txt = "&"
  9139.         hint = "Fired when the button is first pressed."
  9140.       }
  9141.       output#OnUnpressed: =
  9142.       {
  9143.         txt = "&"
  9144.         hint = "Fired when the button is first released from being pressed."
  9145.       }
  9146.       output#OnFullyClosed: =
  9147.       {
  9148.         txt = "&"
  9149.         hint = "Fired when the button has reached position 1, the rotated posi"
  9150.          "tion + 'Distance'."
  9151.       }
  9152.       output#OnFullyOpen: =
  9153.       {
  9154.         txt = "&"
  9155.         hint = "Fired when the button has reached position 0, the unrotated st"
  9156.          "arting position."
  9157.       }
  9158.       output#OnReachedPosition: =
  9159.       {
  9160.         txt = "&"
  9161.         hint = "Fired whenever the button reaches a goal position: i.e. when i"
  9162.          "t becomes open, becomes closed, or reaches the point specified by a "
  9163.          "'SetPosition' input."
  9164.       }
  9165.     }
  9166.     t_Door:incl =
  9167.     {
  9168.       t_Targetname = !
  9169.       t_Parentname = !
  9170.       t_RenderFields = !
  9171.       t_Global = !
  9172.       t_Shadow = !
  9173.       speed: =
  9174.       {
  9175.         txt = "&"
  9176.         hint = "Speed"
  9177.       }
  9178.       master: =
  9179.       {
  9180.         txt = "&"
  9181.         hint = "Master (Obsolete)"
  9182.       }
  9183.       noise1: =
  9184.       {
  9185.         txt = "&"
  9186.         hint = "Start Sound"
  9187.       }
  9188.       noise2: =
  9189.       {
  9190.         txt = "&"
  9191.         hint = "Stop Sound"
  9192.       }
  9193.       wait: =
  9194.       {
  9195.         txt = "&"
  9196.         hint = "Delay Before Reset (-1 stay)"
  9197.       }
  9198.       lip: =
  9199.       {
  9200.         txt = "&"
  9201.         hint = "Lip"
  9202.       }
  9203.       dmg: =
  9204.       {
  9205.         txt = "&"
  9206.         hint = "Blocking Damage"
  9207.       }
  9208.       forceclosed: =
  9209.       {
  9210.         txt = "&"
  9211.         hint = "Force Closed"
  9212.         typ = "C"
  9213.         items = "No"$0D"Yes"
  9214.         values = "0"$0D"1"
  9215.       }
  9216.       message: =
  9217.       {
  9218.         txt = "&"
  9219.         hint = "Message If Triggered"
  9220.       }
  9221.       health: =
  9222.       {
  9223.         txt = "&"
  9224.         hint = "Health (shoot open)"
  9225.       }
  9226.       locked_sound: =
  9227.       {
  9228.         txt = "&"
  9229.         hint = "Locked Sound"
  9230.       }
  9231.       unlocked_sound: =
  9232.       {
  9233.         txt = "&"
  9234.         hint = "Unlocked Sound"
  9235.       }
  9236.       spawnflags: =
  9237.       {
  9238.         txt = "&"
  9239.         typ = "X1"
  9240.         cap = "Starts Open"
  9241.       }
  9242.       spawnflags: =
  9243.       {
  9244.         txt = "&"
  9245.         typ = "X4"
  9246.         cap = "Non-solid to Player"
  9247.       }
  9248.       spawnflags: =
  9249.       {
  9250.         txt = "&"
  9251.         typ = "X8"
  9252.         cap = "Passable"
  9253.       }
  9254.       spawnflags: =
  9255.       {
  9256.         txt = "&"
  9257.         typ = "X32"
  9258.         cap = "Toggle"
  9259.       }
  9260.       spawnflags: =
  9261.       {
  9262.         txt = "&"
  9263.         typ = "X256"
  9264.         cap = "Use Opens"
  9265.       }
  9266.       spawnflags: =
  9267.       {
  9268.         txt = "&"
  9269.         typ = "X512"
  9270.         cap = "NPCs Can't"
  9271.       }
  9272.       spawnflags: =
  9273.       {
  9274.         txt = "&"
  9275.         typ = "X1024"
  9276.         cap = "Touch Opens"
  9277.       }
  9278.       spawnflags: =
  9279.       {
  9280.         txt = "&"
  9281.         typ = "X2048"
  9282.         cap = "Starts locked"
  9283.       }
  9284.       spawnflags: =
  9285.       {
  9286.         txt = "&"
  9287.         typ = "X4096"
  9288.         cap = "Door Silent"
  9289.       }
  9290.       locked_sentence: =
  9291.       {
  9292.         txt = "&"
  9293.         hint = "Locked Sentence"
  9294.         typ = "C"
  9295.         items = "None"$0D"Gen. Access Denied"$0D"Security Lockout"$0D"Blast Do"
  9296.          "or"$0D"Fire Door"$0D"Chemical Door"$0D"Radiation Door"$0D"Gen. Conta"
  9297.          "inment"$0D"Maintenance Door"$0D"Broken Shut Door"
  9298.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"
  9299.       }
  9300.       unlocked_sentence: =
  9301.       {
  9302.         txt = "&"
  9303.         hint = "Unlocked Sentence"
  9304.         typ = "C"
  9305.         items = "None"$0D"Gen. Access Granted"$0D"Security Disengaged"$0D"Blas"
  9306.          "t Door"$0D"Fire Door"$0D"Chemical Door"$0D"Radiation Door"$0D"Gen. C"
  9307.          "ontainment"$0D"Maintenance area"
  9308.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"
  9309.       }
  9310.       _minlight: =
  9311.       {
  9312.         txt = "&"
  9313.         hint = "Minimum Light Level"
  9314.       }
  9315.       loopmovesound: =
  9316.       {
  9317.         txt = "&"
  9318.         hint = "Loop Moving Sound?"
  9319.         typ = "C"
  9320.         items = "No"$0D"Yes"
  9321.         values = "0"$0D"1"
  9322.       }
  9323.       output#OnClose: =
  9324.       {
  9325.         txt = "&"
  9326.         hint = "Fired when the door starts closing."
  9327.       }
  9328.       output#OnOpen: =
  9329.       {
  9330.         txt = "&"
  9331.         hint = "Fired when the door starts opening."
  9332.       }
  9333.       output#OnFullyOpen: =
  9334.       {
  9335.         txt = "&"
  9336.         hint = "Fired when the door reaches the fully open position."
  9337.       }
  9338.       output#OnFullyClosed: =
  9339.       {
  9340.         txt = "&"
  9341.         hint = "Fired when the door reaches the fully closed position."
  9342.       }
  9343.       output#OnBlockedClosing: =
  9344.       {
  9345.         txt = "&"
  9346.         hint = "Fired when the door is blocked while closing."
  9347.       }
  9348.       output#OnBlockedOpening: =
  9349.       {
  9350.         txt = "&"
  9351.         hint = "Fired when the door is blocked while opening."
  9352.       }
  9353.       output#OnUnblockedClosing: =
  9354.       {
  9355.         txt = "&"
  9356.         hint = "Fired when the door is unblocked while closing."
  9357.       }
  9358.       output#OnUnblockedOpening: =
  9359.       {
  9360.         txt = "&"
  9361.         hint = "Fired when the door is unblocked while opening."
  9362.       }
  9363.       input#Open: =
  9364.       {
  9365.         txt = "&"
  9366.         hint = "Open the door, if it is not fully open."
  9367.       }
  9368.       input#Close: =
  9369.       {
  9370.         txt = "&"
  9371.         hint = "Close the door, if it is not fully closed."
  9372.       }
  9373.       input#Toggle: =
  9374.       {
  9375.         txt = "&"
  9376.         hint = "Toggle the door between open and closed."
  9377.       }
  9378.       input#Lock: =
  9379.       {
  9380.         txt = "&"
  9381.         hint = "Lock the door."
  9382.       }
  9383.       input#Unlock: =
  9384.       {
  9385.         txt = "&"
  9386.         hint = "Unlock the door."
  9387.       }
  9388.       input#SetSpeed: =
  9389.       {
  9390.         txt = "&"
  9391.         hint = "Set the door speed."
  9392.       }
  9393.     }
  9394.     func_door:form =
  9395.     {
  9396.       t_Door = !
  9397.       t_Origin = !
  9398.       movedir: =
  9399.       {
  9400.         txt = "&"
  9401.         hint = "Move Direction (Pitch Yaw Roll)"
  9402.       }
  9403.       filtername: =
  9404.       {
  9405.         txt = "&"
  9406.         hint = "Block Filter Name"
  9407.       }
  9408.     }
  9409.     func_door_rotating:form =
  9410.     {
  9411.       t_Door = !
  9412.       t_Origin = !
  9413.       t_Angles = !
  9414.       spawnflags: =
  9415.       {
  9416.         txt = "&"
  9417.         typ = "X2"
  9418.         cap = "Reverse Dir"
  9419.       }
  9420.       spawnflags: =
  9421.       {
  9422.         txt = "&"
  9423.         typ = "X16"
  9424.         cap = "One-way"
  9425.       }
  9426.       spawnflags: =
  9427.       {
  9428.         txt = "&"
  9429.         typ = "X64"
  9430.         cap = "X Axis"
  9431.       }
  9432.       spawnflags: =
  9433.       {
  9434.         txt = "&"
  9435.         typ = "X128"
  9436.         cap = "Y Axis"
  9437.       }
  9438.       distance: =
  9439.       {
  9440.         txt = "&"
  9441.         hint = "Distance"
  9442.       }
  9443.       solidbsp: =
  9444.       {
  9445.         txt = "&"
  9446.         hint = "Solid Type"
  9447.         typ = "C"
  9448.         items = "VPhysics"$0D"BSP"
  9449.         values = "0"$0D"1"
  9450.       }
  9451.     }
  9452.     prop_door_rotating:form =
  9453.     {
  9454.       t_Targetname = !
  9455.       t_Parentname = !
  9456.       t_Angles = !
  9457.       t_Global = !
  9458.       t_Studiomodel = !
  9459.       hardware: =
  9460.       {
  9461.         txt = "&"
  9462.         hint = "Hardware Type"
  9463.         typ = "C"
  9464.         items = "<None>"$0D"Lever"$0D"Push bar"
  9465.         values = "0"$0D"1"$0D"2"
  9466.       }
  9467.       ajarangles: =
  9468.       {
  9469.         txt = "&"
  9470.         hint = "Ajar Angles (Pitch Yaw Roll)"
  9471.       }
  9472.       spawnpos: =
  9473.       {
  9474.         txt = "&"
  9475.         hint = "Spawn Position"
  9476.         typ = "C"
  9477.         items = "Closed"$0D"Open forward"$0D"Open back"$0D"Ajar (use Ajar Angl"
  9478.          "es)"
  9479.         values = "0"$0D"1"$0D"2"$0D"3"
  9480.       }
  9481.       axis: =
  9482.       {
  9483.         txt = "&"
  9484.         hint = "Hinge Axis"
  9485.       }
  9486.       distance: =
  9487.       {
  9488.         txt = "&"
  9489.         hint = "Rotation Distance (deg)"
  9490.       }
  9491.       speed: =
  9492.       {
  9493.         txt = "&"
  9494.         hint = "Speed"
  9495.       }
  9496.       soundopenoverride: =
  9497.       {
  9498.         txt = "&"
  9499.         hint = "Fully Open Sound"
  9500.       }
  9501.       soundcloseoverride: =
  9502.       {
  9503.         txt = "&"
  9504.         hint = "Fully Closed Sound"
  9505.       }
  9506.       soundmoveoverride: =
  9507.       {
  9508.         txt = "&"
  9509.         hint = "Moving Sound"
  9510.       }
  9511.       returndelay: =
  9512.       {
  9513.         txt = "&"
  9514.         hint = "Delay Before close (-1 stay open)"
  9515.       }
  9516.       dmg: =
  9517.       {
  9518.         txt = "&"
  9519.         hint = "Damage Inflicted When Blocked"
  9520.       }
  9521.       health: =
  9522.       {
  9523.         txt = "&"
  9524.         hint = "Health (0 = Unbreakable)"
  9525.       }
  9526.       soundlockedoverride: =
  9527.       {
  9528.         txt = "&"
  9529.         hint = "Locked Sound"
  9530.       }
  9531.       soundunlockedoverride: =
  9532.       {
  9533.         txt = "&"
  9534.         hint = "Unlocked Sound"
  9535.       }
  9536.       forceclosed: =
  9537.       {
  9538.         txt = "&"
  9539.         hint = "Force Closed"
  9540.         typ = "C"
  9541.         items = "No"$0D"Yes"
  9542.         values = "0"$0D"1"
  9543.       }
  9544.       spawnflags: =
  9545.       {
  9546.         txt = "&"
  9547.         typ = "X1"
  9548.         cap = "Starts Open"
  9549.       }
  9550.       spawnflags: =
  9551.       {
  9552.         txt = "&"
  9553.         typ = "X2048"
  9554.         cap = "Starts locked"
  9555.       }
  9556.       spawnflags: =
  9557.       {
  9558.         txt = "&"
  9559.         typ = "X4096"
  9560.         cap = "Door silent (No sound, and does not alert NPCs)"
  9561.       }
  9562.       spawnflags: =
  9563.       {
  9564.         txt = "&"
  9565.         typ = "X8192"
  9566.         cap = "Use closes"
  9567.       }
  9568.       spawnflags: =
  9569.       {
  9570.         txt = "&"
  9571.         typ = "X16384"
  9572.         cap = "Door silent to NPCS (Does not alert NPCs)"
  9573.       }
  9574.       spawnflags: =
  9575.       {
  9576.         txt = "&"
  9577.         typ = "X32768"
  9578.         cap = "Ignore player +USE"
  9579.       }
  9580.       output#OnClose: =
  9581.       {
  9582.         txt = "&"
  9583.         hint = "Fired when the door is told to close."
  9584.       }
  9585.       output#OnOpen: =
  9586.       {
  9587.         txt = "&"
  9588.         hint = "Fired when the door is told to open."
  9589.       }
  9590.       output#OnFullyOpen: =
  9591.       {
  9592.         txt = "&"
  9593.         hint = "Fired when the door reaches the fully open position."
  9594.       }
  9595.       output#OnFullyClosed: =
  9596.       {
  9597.         txt = "&"
  9598.         hint = "Fired when the door reaches the fully closed position."
  9599.       }
  9600.       output#OnBlockedClosing: =
  9601.       {
  9602.         txt = "&"
  9603.         hint = "Fired when the door is blocked while closing."
  9604.       }
  9605.       output#OnBlockedOpening: =
  9606.       {
  9607.         txt = "&"
  9608.         hint = "Fired when the door is blocked while opening."
  9609.       }
  9610.       output#OnUnblockedClosing: =
  9611.       {
  9612.         txt = "&"
  9613.         hint = "Fired when the door is unblocked while closing."
  9614.       }
  9615.       output#OnUnblockedOpening: =
  9616.       {
  9617.         txt = "&"
  9618.         hint = "Fired when the door is unblocked while opening."
  9619.       }
  9620.       input#Open: =
  9621.       {
  9622.         txt = "&"
  9623.         hint = "Open the door, if it is not fully open."
  9624.       }
  9625.       input#OpenAwayFrom: =
  9626.       {
  9627.         txt = "&"
  9628.         hint = "Open the door away from the specified entity."
  9629.       }
  9630.       input#Close: =
  9631.       {
  9632.         txt = "&"
  9633.         hint = "Close the door, if it is not fully closed."
  9634.       }
  9635.       input#Toggle: =
  9636.       {
  9637.         txt = "&"
  9638.         hint = "Toggle the door between open and closed."
  9639.       }
  9640.       input#Lock: =
  9641.       {
  9642.         txt = "&"
  9643.         hint = "Lock the door."
  9644.       }
  9645.       input#Unlock: =
  9646.       {
  9647.         txt = "&"
  9648.         hint = "Unlock the door."
  9649.       }
  9650.     }
  9651.     env_cubemap:form =
  9652.     {
  9653.       cubemapsize: =
  9654.       {
  9655.         txt = "&"
  9656.         hint = "Cubemap Size"
  9657.         typ = "C"
  9658.         items = "Default"$0D"1x1"$0D"2x2"$0D"4x4"$0D"8x8"$0D"16x16"$0D"32x32"$0D
  9659.          "64x64"$0D"128x128"$0D"256x256"
  9660.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"
  9661.       }
  9662.       sides: =
  9663.       {
  9664.         txt = "&"
  9665.         hint = "Brush faces"
  9666.       }
  9667.     }
  9668.     t_BModelParticleSpawner:incl =
  9669.     {
  9670.       StartDisabled: =
  9671.       {
  9672.         txt = "&"
  9673.         hint = "Start Disabled"
  9674.         typ = "C"
  9675.         items = "No"$0D"Yes"
  9676.         values = "0"$0D"1"
  9677.       }
  9678.       Color: =
  9679.       {
  9680.         txt = "&"
  9681.         hint = "Particle Color (R G B)"
  9682.       }
  9683.       Color: =
  9684.       {
  9685.         Txt = "&"
  9686.         Typ = "LU3"
  9687.         Hint = "Particle Color (R G B)"
  9688.       }
  9689.       SpawnRate: =
  9690.       {
  9691.         txt = "&"
  9692.         hint = "Particle Per Second"
  9693.       }
  9694.       SpeedMax: =
  9695.       {
  9696.         txt = "&"
  9697.         hint = "Maximum Particle Speed"
  9698.       }
  9699.       LifetimeMin: =
  9700.       {
  9701.         txt = "&"
  9702.         hint = "Minimum Particle Lifetime"
  9703.       }
  9704.       LifetimeMax: =
  9705.       {
  9706.         txt = "&"
  9707.         hint = "Maximum Particle Lifetime"
  9708.       }
  9709.       DistMax: =
  9710.       {
  9711.         txt = "&"
  9712.         hint = "Maximum Visible Distance"
  9713.       }
  9714.       Frozen: =
  9715.       {
  9716.         txt = "&"
  9717.         hint = "Frozen"
  9718.         typ = "C"
  9719.         items = "No"$0D"Yes"
  9720.         values = "0"$0D"1"
  9721.       }
  9722.       input#TurnOn: =
  9723.       {
  9724.         txt = "&"
  9725.         hint = "Turn on."
  9726.       }
  9727.       input#TurnOff: =
  9728.       {
  9729.         txt = "&"
  9730.         hint = "Turn off."
  9731.       }
  9732.     }
  9733.     func_dustmotes:form =
  9734.     {
  9735.       t_Targetname = !
  9736.       t_BModelParticleSpawner = !
  9737.       SizeMin: =
  9738.       {
  9739.         txt = "&"
  9740.         hint = "Minimum Particle Size"
  9741.       }
  9742.       SizeMax: =
  9743.       {
  9744.         txt = "&"
  9745.         hint = "Maximum Particle Size"
  9746.       }
  9747.       Alpha: =
  9748.       {
  9749.         txt = "&"
  9750.         hint = "Alpha"
  9751.       }
  9752.     }
  9753.     func_smokevolume:form =
  9754.     {
  9755.       t_Targetname = !
  9756.       spawnflags: =
  9757.       {
  9758.         txt = "&"
  9759.         typ = "X1"
  9760.         cap = "Emissive"
  9761.       }
  9762.       Color1: =
  9763.       {
  9764.         txt = "&"
  9765.         hint = "Particle Color1 (R G B)"
  9766.       }
  9767.       Color1: =
  9768.       {
  9769.         Txt = "&"
  9770.         Typ = "LU3"
  9771.         Hint = "light color (not the intensity, only the color)"
  9772.       }
  9773.       Color2: =
  9774.       {
  9775.         txt = "&"
  9776.         hint = "Particle Color2 (R G B)"
  9777.       }
  9778.       Color2: =
  9779.       {
  9780.         Txt = "&"
  9781.         Typ = "LU3"
  9782.         Hint = "light color (not the intensity, only the color)"
  9783.       }
  9784.       material: =
  9785.       {
  9786.         txt = "&"
  9787.         hint = "Material"
  9788.         typ = "ET"
  9789.         Cap = "texture..."
  9790.       }
  9791.       ParticleDrawWidth: =
  9792.       {
  9793.         txt = "&"
  9794.         hint = "Particle Draw Width (units)"
  9795.       }
  9796.       ParticleSpacingDistance: =
  9797.       {
  9798.         txt = "&"
  9799.         hint = "Particle Spacing Distance (units)"
  9800.       }
  9801.       DensityRampSpeed: =
  9802.       {
  9803.         txt = "&"
  9804.         hint = "Density Ramp Speed (seconds)"
  9805.       }
  9806.       RotationSpeed: =
  9807.       {
  9808.         txt = "&"
  9809.         hint = "Rotation Speed (degrees/sec)"
  9810.       }
  9811.       MovementSpeed: =
  9812.       {
  9813.         txt = "&"
  9814.         hint = "Movement Speed (units/sec)"
  9815.       }
  9816.       Density: =
  9817.       {
  9818.         txt = "&"
  9819.         hint = "Density [0..1]"
  9820.       }
  9821.       input#SetRotationSpeed: =
  9822.       {
  9823.         txt = "&"
  9824.         hint = "Set the particle rotation speed (in degrees per second)."
  9825.       }
  9826.       input#SetMovementSpeed: =
  9827.       {
  9828.         txt = "&"
  9829.         hint = "Set the particle movement speed (in inches per second)."
  9830.       }
  9831.       input#SetDensity: =
  9832.       {
  9833.         txt = "&"
  9834.         hint = "Set the particle density. It should be a range from 0 to 1."
  9835.       }
  9836.     }
  9837.     func_dustcloud:form =
  9838.     {
  9839.       t_Targetname = !
  9840.       t_BModelParticleSpawner = !
  9841.       Alpha: =
  9842.       {
  9843.         txt = "&"
  9844.         hint = "Alpha"
  9845.       }
  9846.       SizeMin: =
  9847.       {
  9848.         txt = "&"
  9849.         hint = "Minimum Particle Size"
  9850.       }
  9851.       SizeMax: =
  9852.       {
  9853.         txt = "&"
  9854.         hint = "Maximum Particle Size"
  9855.       }
  9856.     }
  9857.     env_dustpuff:form =
  9858.     {
  9859.       bbox = '-8 -8 -8 8 8 8'
  9860.       t_Targetname = !
  9861.       t_Parentname = !
  9862.       t_Angles = !
  9863.       scale: =
  9864.       {
  9865.         txt = "&"
  9866.         hint = "Scale"
  9867.       }
  9868.       speed: =
  9869.       {
  9870.         txt = "&"
  9871.         hint = "Speed"
  9872.       }
  9873.       color: =
  9874.       {
  9875.         txt = "&"
  9876.         hint = "Dust color"
  9877.       }
  9878.       color: =
  9879.       {
  9880.         Txt = "&"
  9881.         Typ = "LU3"
  9882.         Hint = "Dust color"
  9883.       }
  9884.       input#SpawnDust: =
  9885.       {
  9886.         txt = "&"
  9887.         hint = "Spawn a dust puff."
  9888.       }
  9889.     }
  9890.     env_particlescript:form =
  9891.     {
  9892.       bbox = '-8 -8 -8 8 8 8'
  9893.       t_Targetname = !
  9894.       t_Parentname = !
  9895.       t_Angles = !
  9896.       model: =
  9897.       {
  9898.         txt = "&"
  9899.         hint = "Script Model"
  9900.         typ = "B"
  9901.         Cap = "models..."
  9902.         form = "t_models_hl2_form:form"
  9903.       }
  9904.       input#SetSequence: =
  9905.       {
  9906.         txt = "&"
  9907.         hint = "Sets the script model's sequence."
  9908.       }
  9909.     }
  9910.     env_effectscript:form =
  9911.     {
  9912.       bbox = '-8 -8 -8 8 8 8'
  9913.       t_Targetname = !
  9914.       t_Parentname = !
  9915.       t_Angles = !
  9916.       model: =
  9917.       {
  9918.         txt = "&"
  9919.         hint = "Script Model"
  9920.         typ = "B"
  9921.         Cap = "models..."
  9922.         form = "t_models_hl2_form:form"
  9923.       }
  9924.       scriptfile: =
  9925.       {
  9926.         txt = "&"
  9927.         hint = "Script File"
  9928.       }
  9929.       input#SetSequence: =
  9930.       {
  9931.         txt = "&"
  9932.         hint = "Sets the script model's sequence."
  9933.       }
  9934.     }
  9935.     logic_auto:form =
  9936.     {
  9937.       spawnflags: =
  9938.       {
  9939.         txt = "&"
  9940.         typ = "X1"
  9941.         cap = "Remove on fire"
  9942.       }
  9943.       globalstate: =
  9944.       {
  9945.         txt = "&"
  9946.         hint = "Global State to Read"
  9947.         typ = "C"
  9948.         items = "--- None ---"$0D"Gordon pre-criminal"$0D"Antlions are player "
  9949.          "allies"$0D"Suit sprint function not yet enabled"$0D"Super phys gun i"
  9950.          "s enabled"$0D"Friendly encounter sequence (lower weapons, etc.)"$0D"G"
  9951.          "ordon is invulnerable"$0D"Don't spawn seagulls on the jeep"
  9952.         values = $0D"gordon_precriminal"$0D"antlion_allied"$0D"suit_no_sprint"$0D
  9953.          "super_phys_gun"$0D"friendly_encounter"$0D"gordon_invulnerable"$0D"no"
  9954.          "_seagulls_on_jeep"
  9955.       }
  9956.       output#OnMapSpawn: =
  9957.       {
  9958.         txt = "&"
  9959.         hint = "Fired when the map is loaded for any reason."
  9960.       }
  9961.       output#OnNewGame: =
  9962.       {
  9963.         txt = "&"
  9964.         hint = "Fired when the map is loaded to start a new game."
  9965.       }
  9966.       output#OnLoadGame: =
  9967.       {
  9968.         txt = "&"
  9969.         hint = "Fired when the map is loaded from a saved game."
  9970.       }
  9971.       output#OnMapTransition: =
  9972.       {
  9973.         txt = "&"
  9974.         hint = "Fired when the map is loaded due to a level transition."
  9975.       }
  9976.       output#OnBackgroundMap: =
  9977.       {
  9978.         txt = "&"
  9979.         hint = "Fired when the map is loaded as a background to the main menu."
  9980.       }
  9981.     }
  9982.     point_viewcontrol:form =
  9983.     {
  9984.       bbox = '-8 -8 -8 8 8 8'
  9985.       t_Targetname = !
  9986.       t_Angles = !
  9987.       t_Parentname = !
  9988.       target: =
  9989.       {
  9990.         txt = "&"
  9991.         hint = "Entity to Look At"
  9992.       }
  9993.       targetattachment: =
  9994.       {
  9995.         txt = "&"
  9996.         hint = "Target Attachment Name"
  9997.       }
  9998.       wait: =
  9999.       {
  10000.         txt = "&"
  10001.         hint = "Hold Time"
  10002.       }
  10003.       moveto: =
  10004.       {
  10005.         txt = "&"
  10006.         hint = "Path Corner"
  10007.       }
  10008.       spawnflags: =
  10009.       {
  10010.         txt = "&"
  10011.         typ = "X1"
  10012.         cap = "Start At Player"
  10013.       }
  10014.       spawnflags: =
  10015.       {
  10016.         txt = "&"
  10017.         typ = "X2"
  10018.         cap = "Follow Player"
  10019.       }
  10020.       spawnflags: =
  10021.       {
  10022.         txt = "&"
  10023.         typ = "X4"
  10024.         cap = "Freeze Player"
  10025.       }
  10026.       spawnflags: =
  10027.       {
  10028.         txt = "&"
  10029.         typ = "X8"
  10030.         cap = "Infinite Hold Time"
  10031.       }
  10032.       spawnflags: =
  10033.       {
  10034.         txt = "&"
  10035.         typ = "X16"
  10036.         cap = "Snap to goal angles"
  10037.       }
  10038.       spawnflags: =
  10039.       {
  10040.         txt = "&"
  10041.         typ = "X32"
  10042.         cap = "Make Player non-solid"
  10043.       }
  10044.       spawnflags: =
  10045.       {
  10046.         txt = "&"
  10047.         typ = "X64"
  10048.         cap = "Interruptable by Player"
  10049.       }
  10050.       speed: =
  10051.       {
  10052.         txt = "&"
  10053.         hint = "Initial Speed"
  10054.       }
  10055.       acceleration: =
  10056.       {
  10057.         txt = "&"
  10058.         hint = "Acceleration units/sec^2"
  10059.       }
  10060.       deceleration: =
  10061.       {
  10062.         txt = "&"
  10063.         hint = "Stop Deceleration units/sec^2"
  10064.       }
  10065.       input#Enable: =
  10066.       {
  10067.         txt = "&"
  10068.         hint = "Enable the point_viewcontrol, and start controlling the player"
  10069.          "'s view."
  10070.       }
  10071.       input#Disable: =
  10072.       {
  10073.         txt = "&"
  10074.         hint = "Disable the point_viewcontrol, and stop controlling the player"
  10075.          "'s view."
  10076.       }
  10077.       output#OnEndFollow: =
  10078.       {
  10079.         txt = "&"
  10080.         hint = "Fired when the point_viewcontrol deactivates, due to the Disab"
  10081.          "le input being received, the Entity to Look At being destroyed, or t"
  10082.          "he Hold Time expiring."
  10083.       }
  10084.     }
  10085.     logic_compare:form =
  10086.     {
  10087.       t_Targetname = !
  10088.       InitialValue: =
  10089.       {
  10090.         txt = "&"
  10091.         hint = "Initial value"
  10092.       }
  10093.       CompareValue: =
  10094.       {
  10095.         txt = "&"
  10096.         hint = "Compare value"
  10097.       }
  10098.       input#SetValue: =
  10099.       {
  10100.         txt = "&"
  10101.         hint = "Set the value that will be compared against the compare value."
  10102.       }
  10103.       input#SetValueCompare: =
  10104.       {
  10105.         txt = "&"
  10106.         hint = "Set the value that will be compared against the compare value "
  10107.          "and performs the comparison."
  10108.       }
  10109.       input#SetCompareValue: =
  10110.       {
  10111.         txt = "&"
  10112.         hint = "Set the compare value."
  10113.       }
  10114.       input#Compare: =
  10115.       {
  10116.         txt = "&"
  10117.         hint = "Force a compare of the input value with the compare value."
  10118.       }
  10119.       output#OnLessThan: =
  10120.       {
  10121.         txt = "&"
  10122.         hint = "Fired when the input value is less than the compare value. Sen"
  10123.          "ds the input value as data."
  10124.       }
  10125.       output#OnEqualTo: =
  10126.       {
  10127.         txt = "&"
  10128.         hint = "Fired when the input value is equal to the compare value. Send"
  10129.          "s the input value as data."
  10130.       }
  10131.       output#OnNotEqualTo: =
  10132.       {
  10133.         txt = "&"
  10134.         hint = "Fired when the input value is different from the compare value"
  10135.          ". Sends the input value as data."
  10136.       }
  10137.       output#OnGreaterThan: =
  10138.       {
  10139.         txt = "&"
  10140.         hint = "Fired when the input value is greater than the compare value. "
  10141.          "Sends the input value as data."
  10142.       }
  10143.     }
  10144.     logic_branch:form =
  10145.     {
  10146.       t_Targetname = !
  10147.       InitialValue: =
  10148.       {
  10149.         txt = "&"
  10150.         hint = "Initial value"
  10151.       }
  10152.       input#SetValue: =
  10153.       {
  10154.         txt = "&"
  10155.         hint = "Set the boolean value without performing the comparison. Use t"
  10156.          "his to hold a value for a future test."
  10157.       }
  10158.       input#SetValueTest: =
  10159.       {
  10160.         txt = "&"
  10161.         hint = "Set the boolean value and test it, firing OnTrue or OnFalse ba"
  10162.          "sed on the new value."
  10163.       }
  10164.       input#Toggle: =
  10165.       {
  10166.         txt = "&"
  10167.         hint = "Toggle the boolean value between true and false."
  10168.       }
  10169.       input#ToggleTest: =
  10170.       {
  10171.         txt = "&"
  10172.         hint = "Toggle the boolean value and tests it, firing OnTrue or OnFals"
  10173.          "e based on the new value."
  10174.       }
  10175.       input#Test: =
  10176.       {
  10177.         txt = "&"
  10178.         hint = "Test the input value and fire OnTrue or OnFalse based on the v"
  10179.          "alue."
  10180.       }
  10181.       output#OnTrue: =
  10182.       {
  10183.         txt = "&"
  10184.         hint = "Fired when the input value is true (nonzero)."
  10185.       }
  10186.       output#OnFalse: =
  10187.       {
  10188.         txt = "&"
  10189.         hint = "Fired when the input value is false (zero)."
  10190.       }
  10191.     }
  10192.     logic_case:form =
  10193.     {
  10194.       t_Targetname = !
  10195.       Case01: =
  10196.       {
  10197.         txt = "&"
  10198.         hint = "Case 01"
  10199.       }
  10200.       Case02: =
  10201.       {
  10202.         txt = "&"
  10203.         hint = "Case 02"
  10204.       }
  10205.       Case03: =
  10206.       {
  10207.         txt = "&"
  10208.         hint = "Case 03"
  10209.       }
  10210.       Case04: =
  10211.       {
  10212.         txt = "&"
  10213.         hint = "Case 04"
  10214.       }
  10215.       Case05: =
  10216.       {
  10217.         txt = "&"
  10218.         hint = "Case 05"
  10219.       }
  10220.       Case06: =
  10221.       {
  10222.         txt = "&"
  10223.         hint = "Case 06"
  10224.       }
  10225.       Case07: =
  10226.       {
  10227.         txt = "&"
  10228.         hint = "Case 07"
  10229.       }
  10230.       Case08: =
  10231.       {
  10232.         txt = "&"
  10233.         hint = "Case 08"
  10234.       }
  10235.       Case09: =
  10236.       {
  10237.         txt = "&"
  10238.         hint = "Case 09"
  10239.       }
  10240.       Case10: =
  10241.       {
  10242.         txt = "&"
  10243.         hint = "Case 10"
  10244.       }
  10245.       Case11: =
  10246.       {
  10247.         txt = "&"
  10248.         hint = "Case 11"
  10249.       }
  10250.       Case12: =
  10251.       {
  10252.         txt = "&"
  10253.         hint = "Case 12"
  10254.       }
  10255.       Case13: =
  10256.       {
  10257.         txt = "&"
  10258.         hint = "Case 13"
  10259.       }
  10260.       Case14: =
  10261.       {
  10262.         txt = "&"
  10263.         hint = "Case 14"
  10264.       }
  10265.       Case15: =
  10266.       {
  10267.         txt = "&"
  10268.         hint = "Case 15"
  10269.       }
  10270.       Case16: =
  10271.       {
  10272.         txt = "&"
  10273.         hint = "Case 16"
  10274.       }
  10275.       input#InValue: =
  10276.       {
  10277.         txt = "&"
  10278.         hint = "Compare the Input value to the case values, and fire the appro"
  10279.          "priate output, if any."
  10280.       }
  10281.       input#PickRandom: =
  10282.       {
  10283.         txt = "&"
  10284.         hint = "Fire a random OnCase output with at least one connection."
  10285.       }
  10286.       output#OnCase01: =
  10287.       {
  10288.         txt = "&"
  10289.         hint = "Fired when the input value equals the Case01 value."
  10290.       }
  10291.       output#OnCase02: =
  10292.       {
  10293.         txt = "&"
  10294.         hint = "Fired when the input value equals the Case02 value."
  10295.       }
  10296.       output#OnCase03: =
  10297.       {
  10298.         txt = "&"
  10299.         hint = "Fired when the input value equals the Case03 value."
  10300.       }
  10301.       output#OnCase04: =
  10302.       {
  10303.         txt = "&"
  10304.         hint = "Fired when the input value equals the Case04 value."
  10305.       }
  10306.       output#OnCase05: =
  10307.       {
  10308.         txt = "&"
  10309.         hint = "Fired when the input value equals the Case05 value."
  10310.       }
  10311.       output#OnCase06: =
  10312.       {
  10313.         txt = "&"
  10314.         hint = "Fired when the input value equals the Case06 value."
  10315.       }
  10316.       output#OnCase07: =
  10317.       {
  10318.         txt = "&"
  10319.         hint = "Fired when the input value equals the Case07 value."
  10320.       }
  10321.       output#OnCase08: =
  10322.       {
  10323.         txt = "&"
  10324.         hint = "Fired when the input value equals the Case08 value."
  10325.       }
  10326.       output#OnCase09: =
  10327.       {
  10328.         txt = "&"
  10329.         hint = "Fired when the input value equals the Case09 value."
  10330.       }
  10331.       output#OnCase10: =
  10332.       {
  10333.         txt = "&"
  10334.         hint = "Fired when the input value equals the Case10 value."
  10335.       }
  10336.       output#OnCase11: =
  10337.       {
  10338.         txt = "&"
  10339.         hint = "Fired when the input value equals the Case11 value."
  10340.       }
  10341.       output#OnCase12: =
  10342.       {
  10343.         txt = "&"
  10344.         hint = "Fired when the input value equals the Case12 value."
  10345.       }
  10346.       output#OnCase13: =
  10347.       {
  10348.         txt = "&"
  10349.         hint = "Fired when the input value equals the Case13 value."
  10350.       }
  10351.       output#OnCase14: =
  10352.       {
  10353.         txt = "&"
  10354.         hint = "Fired when the input value equals the Case14 value."
  10355.       }
  10356.       output#OnCase15: =
  10357.       {
  10358.         txt = "&"
  10359.         hint = "Fired when the input value equals the Case15 value."
  10360.       }
  10361.       output#OnCase16: =
  10362.       {
  10363.         txt = "&"
  10364.         hint = "Fired when the input value equals the Case16 value."
  10365.       }
  10366.       output#OnDefault: =
  10367.       {
  10368.         txt = "&"
  10369.         hint = "Fired when the input value does not equal any of the Case valu"
  10370.          "es."
  10371.       }
  10372.     }
  10373.     logic_multicompare:form =
  10374.     {
  10375.       t_Targetname = !
  10376.       IntegerValue: =
  10377.       {
  10378.         txt = "&"
  10379.         hint = "Integer Value (optional)"
  10380.       }
  10381.       ShouldComparetoValue: =
  10382.       {
  10383.         txt = "&"
  10384.         hint = "Should use Integer Value"
  10385.         typ = "C"
  10386.         items = "No"$0D"Yes"
  10387.         values = "0"$0D"1"
  10388.       }
  10389.       input#InputValue: =
  10390.       {
  10391.         txt = "&"
  10392.         hint = "Input value"
  10393.       }
  10394.       input#CompareValues: =
  10395.       {
  10396.         txt = "&"
  10397.         hint = "Compares the values and fires appropriate outputs"
  10398.       }
  10399.       output#OnEqual: =
  10400.       {
  10401.         txt = "&"
  10402.         hint = "Fires if the values are equal"
  10403.       }
  10404.       output#OnNotEqual: =
  10405.       {
  10406.         txt = "&"
  10407.         hint = "Fires if the values are not equal"
  10408.       }
  10409.     }
  10410.     logic_relay:form =
  10411.     {
  10412.       t_Targetname = !
  10413.       t_EnableDisable = !
  10414.       spawnflags: =
  10415.       {
  10416.         txt = "&"
  10417.         typ = "X1"
  10418.         cap = "Only trigger once"
  10419.       }
  10420.       spawnflags: =
  10421.       {
  10422.         txt = "&"
  10423.         typ = "X2"
  10424.         cap = "Allow fast retrigger"
  10425.       }
  10426.       input#Trigger: =
  10427.       {
  10428.         txt = "&"
  10429.         hint = "Trigger the relay, causing its OnTrigger output to fire if it "
  10430.          "is enabled."
  10431.       }
  10432.       input#Toggle: =
  10433.       {
  10434.         txt = "&"
  10435.         hint = "Toggle the relay between enabled and disabled."
  10436.       }
  10437.       input#CancelPending: =
  10438.       {
  10439.         txt = "&"
  10440.         hint = "Cancel any events fired by this relay that are currently pendi"
  10441.          "ng in the I/O event queue."
  10442.       }
  10443.       output#OnTrigger: =
  10444.       {
  10445.         txt = "&"
  10446.         hint = "Fired when the relay is triggered."
  10447.       }
  10448.     }
  10449.     logic_timer:form =
  10450.     {
  10451.       t_Targetname = !
  10452.       t_EnableDisable = !
  10453.       spawnflags: =
  10454.       {
  10455.         txt = "&"
  10456.         typ = "X1"
  10457.         cap = "Oscillator (alternates between OnTimerHigh and OnTimerLow outpu"
  10458.          "ts)"
  10459.       }
  10460.       UseRandomTime: =
  10461.       {
  10462.         txt = "&"
  10463.         hint = "Use Random Time"
  10464.         typ = "C"
  10465.         items = "No"$0D"Yes"
  10466.         values = "0"$0D"1"
  10467.       }
  10468.       LowerRandomBound: =
  10469.       {
  10470.         txt = "&"
  10471.         hint = "Minimum Random Interval"
  10472.       }
  10473.       UpperRandomBound: =
  10474.       {
  10475.         txt = "&"
  10476.         hint = "Maximum Random Interval"
  10477.       }
  10478.       RefireTime: =
  10479.       {
  10480.         txt = "&"
  10481.         hint = "Refire Interval"
  10482.       }
  10483.       input#RefireTime: =
  10484.       {
  10485.         txt = "&"
  10486.         hint = "Set a new Refire Interval."
  10487.       }
  10488.       input#FireTimer: =
  10489.       {
  10490.         txt = "&"
  10491.         hint = "Force the timer to fire immediately."
  10492.       }
  10493.       input#Enable: =
  10494.       {
  10495.         txt = "&"
  10496.         hint = "Enable the timer."
  10497.       }
  10498.       input#Disable: =
  10499.       {
  10500.         txt = "&"
  10501.         hint = "Disable the timer."
  10502.       }
  10503.       input#Toggle: =
  10504.       {
  10505.         txt = "&"
  10506.         hint = "Toggle the timer on/off."
  10507.       }
  10508.       input#LowerRandomBound: =
  10509.       {
  10510.         txt = "&"
  10511.         hint = "Set a new Minimum Random Interval."
  10512.       }
  10513.       input#UpperRandomBound: =
  10514.       {
  10515.         txt = "&"
  10516.         hint = "Set a new Maximum Random Interval."
  10517.       }
  10518.       output#OnTimer: =
  10519.       {
  10520.         txt = "&"
  10521.         hint = "Fired when the timer expires."
  10522.       }
  10523.       output#OnTimerHigh: =
  10524.       {
  10525.         txt = "&"
  10526.         hint = "Fired every other time for an oscillating timer."
  10527.       }
  10528.       output#OnTimerLow: =
  10529.       {
  10530.         txt = "&"
  10531.         hint = "Fired every other time for an oscillating timer."
  10532.       }
  10533.     }
  10534.     logic_collision_pair:form =
  10535.     {
  10536.       bbox = '-4 -4 -4 4 4 4'
  10537.       attach1: =
  10538.       {
  10539.         txt = "&"
  10540.         hint = "Attachment 1"
  10541.       }
  10542.       attach2: =
  10543.       {
  10544.         txt = "&"
  10545.         hint = "Attachment 2"
  10546.       }
  10547.       startdisabled: =
  10548.       {
  10549.         txt = "&"
  10550.         hint = "Start with collisions disabled"
  10551.         typ = "C"
  10552.         items = "No"$0D"Yes"
  10553.         values = "0"$0D"1"
  10554.       }
  10555.       input#EnableCollisions: =
  10556.       {
  10557.         txt = "&"
  10558.         hint = "Enable collisions between the first and second entity."
  10559.       }
  10560.       input#DisableCollisions: =
  10561.       {
  10562.         txt = "&"
  10563.         hint = "Disable collisions between the first and second entity."
  10564.       }
  10565.     }
  10566.     env_microphone:form =
  10567.     {
  10568.       t_Targetname = !
  10569.       t_Parentname = !
  10570.       t_EnableDisable = !
  10571.       target: =
  10572.       {
  10573.         txt = "&"
  10574.         hint = "Measure target"
  10575.       }
  10576.       SpeakerName: =
  10577.       {
  10578.         txt = "&"
  10579.         hint = "Speaker"
  10580.       }
  10581.       ListenFilter: =
  10582.       {
  10583.         txt = "&"
  10584.         hint = "Listen Filter"
  10585.       }
  10586.       speaker_dsp_preset: =
  10587.       {
  10588.         txt = "&"
  10589.         hint = "Speaker DSP Preset"
  10590.         typ = "C"
  10591.         items = "Use Default"$0D"1 NO EFFECT"$0D"2 (DUPLICATE OF 1)"$0D"3 (DUP"
  10592.          "LICATE OF 1)"$0D"4 (DUPLICATE OF 1)"$0D"5 (DUPLICATE OF 1)"$0D"6 SPE"
  10593.          "AKER, LOUDER"$0D"7 SPEAKER VERY SMALL"$0D"8 LOUDSPEAKER, ECHO"$0D"9 "
  10594.          "SPEAKER SMALL"$0D"10 SPEAKER TINY"
  10595.         values = "0"$0D"50"$0D"51"$0D"52"$0D"53"$0D"54"$0D"55"$0D"56"$0D"57"$0D
  10596.          "58"$0D"59"
  10597.       }
  10598.       spawnflags: =
  10599.       {
  10600.         txt = "&"
  10601.         typ = "X1"
  10602.         cap = "Hears combat sounds"
  10603.       }
  10604.       spawnflags: =
  10605.       {
  10606.         txt = "&"
  10607.         typ = "X2"
  10608.         cap = "Hears world sounds"
  10609.       }
  10610.       spawnflags: =
  10611.       {
  10612.         txt = "&"
  10613.         typ = "X4"
  10614.         cap = "Hears player sounds"
  10615.       }
  10616.       spawnflags: =
  10617.       {
  10618.         txt = "&"
  10619.         typ = "X8"
  10620.         cap = "Hears bullet impacts"
  10621.       }
  10622.       spawnflags: =
  10623.       {
  10624.         txt = "&"
  10625.         typ = "X16"
  10626.         cap = "Swallows sounds routed through speakers"
  10627.       }
  10628.       spawnflags: =
  10629.       {
  10630.         txt = "&"
  10631.         typ = "X32"
  10632.         cap = "Hears explosions"
  10633.       }
  10634.       Sensitivity: =
  10635.       {
  10636.         txt = "&"
  10637.         hint = "Sensitivity (0 - 10)"
  10638.       }
  10639.       SmoothFactor: =
  10640.       {
  10641.         txt = "&"
  10642.         hint = "Smoothing (0 - 1)"
  10643.       }
  10644.       MaxRange: =
  10645.       {
  10646.         txt = "&"
  10647.         hint = "Maximum hearing range (0=infinite)"
  10648.       }
  10649.       input#SetSpeakerName: =
  10650.       {
  10651.         txt = "&"
  10652.         hint = "Set the microphone to output through a different speaker entit"
  10653.          "y."
  10654.       }
  10655.       output#SoundLevel: =
  10656.       {
  10657.         txt = "&"
  10658.         hint = "Fired in Measuring mode whenever the sound level changes."
  10659.       }
  10660.       output#OnRoutedSound: =
  10661.       {
  10662.         txt = "&"
  10663.         hint = "Fired whenever a sound is routed out through the specified spe"
  10664.          "aker (if any)."
  10665.       }
  10666.       output#OnHeardSound: =
  10667.       {
  10668.         txt = "&"
  10669.         hint = "Fired whenever this microphone hears any sound it cares about."
  10670.       }
  10671.     }
  10672.     math_remap:form =
  10673.     {
  10674.       t_Targetname = !
  10675.       spawnflags: =
  10676.       {
  10677.         txt = "&"
  10678.         typ = "X1"
  10679.         cap = "Ignore out of range input values"
  10680.       }
  10681.       in1: =
  10682.       {
  10683.         txt = "&"
  10684.         hint = "Minimum Valid Input Value"
  10685.       }
  10686.       in2: =
  10687.       {
  10688.         txt = "&"
  10689.         hint = "Maximum Valid Input Value"
  10690.       }
  10691.       out1: =
  10692.       {
  10693.         txt = "&"
  10694.         hint = "Output Value When Input Is Min."
  10695.       }
  10696.       out2: =
  10697.       {
  10698.         txt = "&"
  10699.         hint = "Output Value When Input Is Max."
  10700.       }
  10701.       input#InValue: =
  10702.       {
  10703.         txt = "&"
  10704.         hint = "Input value and fire the output with the remapped value."
  10705.       }
  10706.       output#OutValue: =
  10707.       {
  10708.         txt = "&"
  10709.         hint = "Fired when the InValue input is received, with the remapped in"
  10710.          "put value as the parameter."
  10711.       }
  10712.     }
  10713.     math_colorblend:form =
  10714.     {
  10715.       t_Targetname = !
  10716.       spawnflags: =
  10717.       {
  10718.         txt = "&"
  10719.         typ = "X1"
  10720.         cap = "Ignore out of range input values"
  10721.       }
  10722.       inmin: =
  10723.       {
  10724.         txt = "&"
  10725.         hint = "Minimum Valid Input Value"
  10726.       }
  10727.       inmax: =
  10728.       {
  10729.         txt = "&"
  10730.         hint = "Maximum Valid Input Value"
  10731.       }
  10732.       colormin: =
  10733.       {
  10734.         txt = "&"
  10735.         hint = "Output RGB color when input is min."
  10736.       }
  10737.       colormax: =
  10738.       {
  10739.         txt = "&"
  10740.         hint = "Output RGB color when input is max."
  10741.       }
  10742.       input#InValue: =
  10743.       {
  10744.         txt = "&"
  10745.         hint = "Input value and fire the output with the remapped value."
  10746.       }
  10747.       output#OutColor: =
  10748.       {
  10749.         txt = "&"
  10750.         hint = "Fired when the InValue input is received, with the remapped RG"
  10751.          "B color as the parameter."
  10752.       }
  10753.     }
  10754.     math_counter:form =
  10755.     {
  10756.       t_Targetname = !
  10757.       startvalue: =
  10758.       {
  10759.         txt = "&"
  10760.         hint = "Initial Value"
  10761.       }
  10762.       min: =
  10763.       {
  10764.         txt = "&"
  10765.         hint = "Minimum Legal Value"
  10766.       }
  10767.       max: =
  10768.       {
  10769.         txt = "&"
  10770.         hint = "Maximum Legal Value"
  10771.       }
  10772.       input#Add: =
  10773.       {
  10774.         txt = "&"
  10775.         hint = "Add an amount to the counter and fire the OutValue output with"
  10776.          " the result."
  10777.       }
  10778.       input#Divide: =
  10779.       {
  10780.         txt = "&"
  10781.         hint = "Divide the counter by an amount and fire the OutValue output w"
  10782.          "ith the result."
  10783.       }
  10784.       input#Multiply: =
  10785.       {
  10786.         txt = "&"
  10787.         hint = "Multiply the counter by an amount and fire the OutValue output"
  10788.          " with the result."
  10789.       }
  10790.       input#SetValue: =
  10791.       {
  10792.         txt = "&"
  10793.         hint = "Set the counter to a new value and fire the OutValue output wi"
  10794.          "th the result."
  10795.       }
  10796.       input#SetValueNoFire: =
  10797.       {
  10798.         txt = "&"
  10799.         hint = "Set the counter to a new value without firing any outputs."
  10800.       }
  10801.       input#Subtract: =
  10802.       {
  10803.         txt = "&"
  10804.         hint = "Subtract an amount from the counter and fire the OutValue outp"
  10805.          "ut with the result."
  10806.       }
  10807.       input#SetHitMax: =
  10808.       {
  10809.         txt = "&"
  10810.         hint = "Set the upper bound of the counter and fire the OutValue outpu"
  10811.          "t with the current value."
  10812.       }
  10813.       input#SetHitMin: =
  10814.       {
  10815.         txt = "&"
  10816.         hint = "Set the lower bound of the counter and fire the OutValue outpu"
  10817.          "t with the current value."
  10818.       }
  10819.       output#OutValue: =
  10820.       {
  10821.         txt = "&"
  10822.         hint = "Fired when the counter value changes."
  10823.       }
  10824.       output#OnHitMin: =
  10825.       {
  10826.         txt = "&"
  10827.         hint = "Fired when the counter value meets or goes below the min value"
  10828.          ". The counter must go back above the min value before the output wil"
  10829.          "l fire again."
  10830.       }
  10831.       output#OnHitMax: =
  10832.       {
  10833.         txt = "&"
  10834.         hint = "Fired when the counter value meets or exceeds the max value. T"
  10835.          "he counter must go below the max value before the output will fire a"
  10836.          "gain."
  10837.       }
  10838.     }
  10839.     logic_lineto:form =
  10840.     {
  10841.       bbox = '-8 -8 -8 8 8 8'
  10842.       t_Targetname = !
  10843.       source: =
  10844.       {
  10845.         txt = "&"
  10846.         hint = "Start entity"
  10847.       }
  10848.       target: =
  10849.       {
  10850.         txt = "&"
  10851.         hint = "End entity"
  10852.       }
  10853.       output#Line: =
  10854.       {
  10855.         txt = "&"
  10856.         hint = "Fired when the vector, from the start entity to the end entity"
  10857.          ", changes. Passes along the vector as a parameter."
  10858.       }
  10859.     }
  10860.     logic_navigation:form =
  10861.     {
  10862.       bbox = '-8 -8 -8 8 8 8'
  10863.       t_Targetname = !
  10864.       target: =
  10865.       {
  10866.         txt = "&"
  10867.         hint = "Navigation Entity"
  10868.       }
  10869.       spawnflags: =
  10870.       {
  10871.         txt = "&"
  10872.         typ = "X1"
  10873.         cap = "Start On"
  10874.       }
  10875.       navprop: =
  10876.       {
  10877.         txt = "&"
  10878.         hint = "Nav Property"
  10879.         typ = "C"
  10880.         items = "NPCs Ignore this when navigating (they'll bump into it)"
  10881.         values = "Ignore"
  10882.       }
  10883.       input#TurnOn: =
  10884.       {
  10885.         txt = "&"
  10886.         hint = "Turn on. The Navigation Entity will have its navigation proper"
  10887.          "ties set."
  10888.       }
  10889.       input#TurnOff: =
  10890.       {
  10891.         txt = "&"
  10892.         hint = "Turn off. The Navigation Entity will have its navigation prope"
  10893.          "rties returned to the default settings."
  10894.       }
  10895.       input#Toggle: =
  10896.       {
  10897.         txt = "&"
  10898.         hint = "Toggle on/off."
  10899.       }
  10900.     }
  10901.     logic_autosave:form =
  10902.     {
  10903.       bbox = '-8 -8 -8 8 8 8'
  10904.       t_Targetname = !
  10905.       NewLevelUnit: =
  10906.       {
  10907.         txt = "&"
  10908.         hint = "Force New Level Unit"
  10909.         typ = "C"
  10910.         items = "No"$0D"Yes"
  10911.         values = "0"$0D"1"
  10912.       }
  10913.       input#Save: =
  10914.       {
  10915.         txt = "&"
  10916.         hint = "Force an autosave."
  10917.       }
  10918.     }
  10919.     point_template:form =
  10920.     {
  10921.       bbox = '-8 -8 -8 8 8 8'
  10922.       t_Targetname = !
  10923.       spawnflags: =
  10924.       {
  10925.         txt = "&"
  10926.         typ = "X1"
  10927.         cap = "Don't remove template entities"
  10928.       }
  10929.       spawnflags: =
  10930.       {
  10931.         txt = "&"
  10932.         typ = "X2"
  10933.         cap = "Preserve entity names (Don't do name fixup)"
  10934.       }
  10935.       Template01: =
  10936.       {
  10937.         txt = "&"
  10938.         hint = "Template 1"
  10939.       }
  10940.       Template02: =
  10941.       {
  10942.         txt = "&"
  10943.         hint = "Template 2"
  10944.       }
  10945.       Template03: =
  10946.       {
  10947.         txt = "&"
  10948.         hint = "Template 3"
  10949.       }
  10950.       Template04: =
  10951.       {
  10952.         txt = "&"
  10953.         hint = "Template 4"
  10954.       }
  10955.       Template05: =
  10956.       {
  10957.         txt = "&"
  10958.         hint = "Template 5"
  10959.       }
  10960.       Template06: =
  10961.       {
  10962.         txt = "&"
  10963.         hint = "Template 6"
  10964.       }
  10965.       Template07: =
  10966.       {
  10967.         txt = "&"
  10968.         hint = "Template 7"
  10969.       }
  10970.       Template08: =
  10971.       {
  10972.         txt = "&"
  10973.         hint = "Template 8"
  10974.       }
  10975.       Template09: =
  10976.       {
  10977.         txt = "&"
  10978.         hint = "Template 9"
  10979.       }
  10980.       Template10: =
  10981.       {
  10982.         txt = "&"
  10983.         hint = "Template 10"
  10984.       }
  10985.       Template11: =
  10986.       {
  10987.         txt = "&"
  10988.         hint = "Template 11"
  10989.       }
  10990.       Template12: =
  10991.       {
  10992.         txt = "&"
  10993.         hint = "Template 12"
  10994.       }
  10995.       Template13: =
  10996.       {
  10997.         txt = "&"
  10998.         hint = "Template 13"
  10999.       }
  11000.       Template14: =
  11001.       {
  11002.         txt = "&"
  11003.         hint = "Template 14"
  11004.       }
  11005.       Template15: =
  11006.       {
  11007.         txt = "&"
  11008.         hint = "Template 15"
  11009.       }
  11010.       Template16: =
  11011.       {
  11012.         txt = "&"
  11013.         hint = "Template 16"
  11014.       }
  11015.       input#ForceSpawn: =
  11016.       {
  11017.         txt = "&"
  11018.         hint = "Spawn an instance of the template at the original position."
  11019.       }
  11020.       output#OnEntitySpawned: =
  11021.       {
  11022.         txt = "&"
  11023.         hint = "Fired after spawning an instance of this template."
  11024.       }
  11025.     }
  11026.     env_entity_maker:form =
  11027.     {
  11028.       t_Targetname = !
  11029.       t_Parentname = !
  11030.       t_Angles = !
  11031.       spawnflags: =
  11032.       {
  11033.         txt = "&"
  11034.         typ = "X1"
  11035.         cap = "Enable AutoSpawn (will spawn whenever there's room)"
  11036.       }
  11037.       spawnflags: =
  11038.       {
  11039.         txt = "&"
  11040.         typ = "X2"
  11041.         cap = "AutoSpawn: Wait for entity destruction"
  11042.       }
  11043.       spawnflags: =
  11044.       {
  11045.         txt = "&"
  11046.         typ = "X4"
  11047.         cap = "AutoSpawn: Even if the player is looking"
  11048.       }
  11049.       spawnflags: =
  11050.       {
  11051.         txt = "&"
  11052.         typ = "X8"
  11053.         cap = "ForceSpawn: Only if there's room"
  11054.       }
  11055.       spawnflags: =
  11056.       {
  11057.         txt = "&"
  11058.         typ = "X16"
  11059.         cap = "ForceSpawn: Only if the player isn't looking"
  11060.       }
  11061.       EntityTemplate: =
  11062.       {
  11063.         txt = "&"
  11064.         hint = "Point_template To Spawn"
  11065.       }
  11066.       input#ForceSpawn: =
  11067.       {
  11068.         txt = "&"
  11069.         hint = "Spawn an instance of the template at this origin and angle."
  11070.       }
  11071.       output#OnEntitySpawned: =
  11072.       {
  11073.         txt = "&"
  11074.         hint = "Fired when an instance of the entity template has been spawned"
  11075.          "."
  11076.       }
  11077.     }
  11078.     t_BaseFilter:incl =
  11079.     {
  11080.       t_Targetname = !
  11081.       Negated: =
  11082.       {
  11083.         txt = "&"
  11084.         hint = "Filter mode"
  11085.         typ = "C"
  11086.         items = "Allow entities that match criteria"$0D"Disallow entities that"
  11087.          " match criteria"
  11088.         values = "0"$0D"1"
  11089.       }
  11090.       input#TestActivator: =
  11091.       {
  11092.         txt = "&"
  11093.         hint = "Test the activator against the filter and fires OnPass or OnFa"
  11094.          "il output."
  11095.       }
  11096.       output#OnPass: =
  11097.       {
  11098.         txt = "&"
  11099.         hint = "Fired in response to TestActivator input if the activator pass"
  11100.          "es the filter."
  11101.       }
  11102.       output#OnFail: =
  11103.       {
  11104.         txt = "&"
  11105.         hint = "Fired in response to TestActivator input if the activator fail"
  11106.          "s to pass the filter."
  11107.       }
  11108.     }
  11109.     filter_multi:form =
  11110.     {
  11111.       t_BaseFilter = !
  11112.       filtertype: =
  11113.       {
  11114.         txt = "&"
  11115.         hint = "Logic Type"
  11116.         typ = "C"
  11117.         items = "AND (all filters must pass)"$0D"OR (any filter must pass)"
  11118.         values = "0"$0D"1"
  11119.       }
  11120.       Negated: =
  11121.       {
  11122.         txt = "&"
  11123.         hint = "Negate Outcome"
  11124.         typ = "C"
  11125.         items = "No"$0D"Yes"
  11126.         values = "0"$0D"1"
  11127.       }
  11128.       Filter01: =
  11129.       {
  11130.         txt = "&"
  11131.         hint = "Filter 1"
  11132.       }
  11133.       Filter02: =
  11134.       {
  11135.         txt = "&"
  11136.         hint = "Filter 2"
  11137.       }
  11138.       Filter03: =
  11139.       {
  11140.         txt = "&"
  11141.         hint = "Filter 3"
  11142.       }
  11143.       Filter04: =
  11144.       {
  11145.         txt = "&"
  11146.         hint = "Filter 4"
  11147.       }
  11148.       Filter05: =
  11149.       {
  11150.         txt = "&"
  11151.         hint = "Filter 5"
  11152.       }
  11153.     }
  11154.     filter_activator_name:form =
  11155.     {
  11156.       t_BaseFilter = !
  11157.       filtername: =
  11158.       {
  11159.         txt = "&"
  11160.         hint = "Filter Name"
  11161.       }
  11162.     }
  11163.     filter_activator_class:form =
  11164.     {
  11165.       t_BaseFilter = !
  11166.       filterclass: =
  11167.       {
  11168.         txt = "&"
  11169.         hint = "Filter Classname"
  11170.       }
  11171.     }
  11172.     filter_damage_type:form =
  11173.     {
  11174.       t_BaseFilter = !
  11175.       damagetype: =
  11176.       {
  11177.         txt = "&"
  11178.         hint = "Damage type"
  11179.         typ = "C"
  11180.         items = "GENERIC"$0D"CRUSH"$0D"BULLET"$0D"SLASH"$0D"BURN"$0D"FREEZE"$0D
  11181.          "FALL"$0D"BLAST"$0D"CLUB"$0D"SHOCK"$0D"SONIC"$0D"ENERGYBEAM"$0D"DROWN"
  11182.          $0D"PARALYSE"$0D"NERVEGAS"$0D"POISON"$0D"RADIATION"$0D"DROWNRECOVER"$0D
  11183.          "CHEMICAL"$0D"SLOWBURN"$0D"SLOWFREEZE"
  11184.         values = "0"$0D"1"$0D"2"$0D"4"$0D"8"$0D"16"$0D"32"$0D"64"$0D"128"$0D"2"
  11185.          "56"$0D"512"$0D"1024"$0D"16384"$0D"32768"$0D"65536"$0D"131072"$0D"262"
  11186.          "144"$0D"524288"$0D"1048576"$0D"2097152"$0D"4194304"
  11187.       }
  11188.     }
  11189.     point_anglesensor:form =
  11190.     {
  11191.       t_Targetname = !
  11192.       t_Parentname = !
  11193.       t_EnableDisable = !
  11194.       target: =
  11195.       {
  11196.         txt = "&"
  11197.         hint = "Target Entity Name"
  11198.       }
  11199.       lookatname: =
  11200.       {
  11201.         txt = "&"
  11202.         hint = "Look At Entity"
  11203.       }
  11204.       duration: =
  11205.       {
  11206.         txt = "&"
  11207.         hint = "Duration"
  11208.       }
  11209.       tolerance: =
  11210.       {
  11211.         txt = "&"
  11212.         hint = "Tolerance"
  11213.       }
  11214.       input#Toggle: =
  11215.       {
  11216.         txt = "&"
  11217.         hint = "Toggle the sensor between enabled and disabled."
  11218.       }
  11219.       input#Test: =
  11220.       {
  11221.         txt = "&"
  11222.         hint = "Check to see if the Target Entity is facing the Look At Entity"
  11223.          " within the specified tolerance, firing either the OnFacingLookat or"
  11224.          " OnNotFacingLookat output based on the result."
  11225.       }
  11226.       output#TargetDir: =
  11227.       {
  11228.         txt = "&"
  11229.         hint = "Fired when the forward direction of the Target Entity changes."
  11230.          " Passes the new forward direction as a parameter."
  11231.       }
  11232.       output#OnFacingLookat: =
  11233.       {
  11234.         txt = "&"
  11235.         hint = "Fired when the Target Entity points at the Look At Entity for "
  11236.          "more than the specified Duration, or in response to a Test input."
  11237.       }
  11238.       output#OnNotFacingLookat: =
  11239.       {
  11240.         txt = "&"
  11241.         hint = "Fires in response to a Test input when the Target Entity is no"
  11242.          "t pointing at the Look At Entity."
  11243.       }
  11244.     }
  11245.     point_angularvelocitysensor:form =
  11246.     {
  11247.       t_Targetname = !
  11248.       target: =
  11249.       {
  11250.         txt = "&"
  11251.         hint = "Target Entity Name"
  11252.       }
  11253.       threshold: =
  11254.       {
  11255.         txt = "&"
  11256.         hint = "Threshold Velocity"
  11257.       }
  11258.       input#Test: =
  11259.       {
  11260.         txt = "&"
  11261.         hint = "Checks to see if the Target Entity's angular velocity meets or"
  11262.          " exceeds the Threshold Velocity, firing either the OnGreaterThanOrEq"
  11263.          "ualTo or OnLessThan output based on the result."
  11264.       }
  11265.       output#AngularVelocity: =
  11266.       {
  11267.         txt = "&"
  11268.         hint = "Fired when the Target's Angular Velocity changes, passing the "
  11269.          "new magnitude of the angular velocity."
  11270.       }
  11271.       output#OnGreaterThan: =
  11272.       {
  11273.         txt = "&"
  11274.         hint = "Fired when the Target Entity goes from slower than the thresho"
  11275.          "ld angular velocity to faster than the threshold angular velocity."
  11276.       }
  11277.       output#OnGreaterThanOrEqualTo: =
  11278.       {
  11279.         txt = "&"
  11280.         hint = "Fired when the Target Entity goes from slower than the thresho"
  11281.          "ld angular velocity to faster than the threshold angular velocity."
  11282.       }
  11283.       output#OnLessThan: =
  11284.       {
  11285.         txt = "&"
  11286.         hint = "Fired when the Target Entity goes from faster than the thresho"
  11287.          "ld angular velocity to slower than the threshold angular velocity."
  11288.       }
  11289.       output#OnLessThanOrEqualTo: =
  11290.       {
  11291.         txt = "&"
  11292.         hint = "Fired when the Target Entity goes from faster than the thresho"
  11293.          "ld angular velocity to slower than the threshold angular velocity."
  11294.       }
  11295.       output#OnEqualTo: =
  11296.       {
  11297.         txt = "&"
  11298.         hint = "Fired when the Target Entity reaches the threshold angular vel"
  11299.          "ocity from a different velocity."
  11300.       }
  11301.     }
  11302.     point_teleport:form =
  11303.     {
  11304.       t_Targetname = !
  11305.       t_Angles = !
  11306.       target: =
  11307.       {
  11308.         txt = "&"
  11309.         hint = "Entity To Teleport"
  11310.       }
  11311.       spawnflags: =
  11312.       {
  11313.         txt = "&"
  11314.         typ = "X1"
  11315.         cap = "Teleport Home"
  11316.       }
  11317.       input#Teleport: =
  11318.       {
  11319.         txt = "&"
  11320.         hint = "Teleport the target entity."
  11321.       }
  11322.     }
  11323.     point_hurt:form =
  11324.     {
  11325.       t_Targetname = !
  11326.       DamageTarget: =
  11327.       {
  11328.         txt = "&"
  11329.         hint = "Target Entity"
  11330.       }
  11331.       DamageRadius: =
  11332.       {
  11333.         txt = "&"
  11334.         hint = "Radius"
  11335.       }
  11336.       Damage: =
  11337.       {
  11338.         txt = "&"
  11339.         hint = "Damage"
  11340.       }
  11341.       DamageDelay: =
  11342.       {
  11343.         txt = "&"
  11344.         hint = "Delay"
  11345.       }
  11346.       DamageType: =
  11347.       {
  11348.         txt = "&"
  11349.         hint = "Damage Type"
  11350.         typ = "C"
  11351.         items = "GENERIC"$0D"CRUSH"$0D"BULLET"$0D"SLASH"$0D"BURN"$0D"FREEZE"$0D
  11352.          "FALL"$0D"BLAST"$0D"CLUB"$0D"SHOCK"$0D"SONIC"$0D"ENERGYBEAM"$0D"DROWN"
  11353.          $0D"PARALYSE"$0D"NERVEGAS"$0D"POISON"$0D"RADIATION"$0D"DROWNRECOVER"$0D
  11354.          "CHEMICAL"$0D"SLOWBURN"$0D"SLOWFREEZE"
  11355.         values = "0"$0D"1"$0D"2"$0D"4"$0D"8"$0D"16"$0D"32"$0D"64"$0D"128"$0D"2"
  11356.          "56"$0D"512"$0D"1024"$0D"16384"$0D"32768"$0D"65536"$0D"131072"$0D"262"
  11357.          "144"$0D"524288"$0D"1048576"$0D"2097152"$0D"4194304"
  11358.       }
  11359.       input#Hurt: =
  11360.       {
  11361.         txt = "&"
  11362.         hint = "Force a single fire, damaging either the Target Entity or all "
  11363.          "entities within the radius."
  11364.       }
  11365.       input#TurnOn: =
  11366.       {
  11367.         txt = "&"
  11368.         hint = "Enable this entity. It will start damaging entities everytime "
  11369.          "it fires, and refire based upon the specified Delay."
  11370.       }
  11371.       input#TurnOff: =
  11372.       {
  11373.         txt = "&"
  11374.         hint = "Disable this entity. It will stop damaging entities."
  11375.       }
  11376.       input#Toggle: =
  11377.       {
  11378.         txt = "&"
  11379.         hint = "Toggle this entity between On/Off state."
  11380.       }
  11381.     }
  11382.     point_playermoveconstraint:form =
  11383.     {
  11384.       bbox = '-8 -8 -8 8 8 8'
  11385.       t_Targetname = !
  11386.       radius: =
  11387.       {
  11388.         txt = "&"
  11389.         hint = "Radius"
  11390.       }
  11391.       width: =
  11392.       {
  11393.         txt = "&"
  11394.         hint = "Constraint Width"
  11395.       }
  11396.       speedfactor: =
  11397.       {
  11398.         txt = "&"
  11399.         hint = "Speed Factor"
  11400.       }
  11401.       input#TurnOn: =
  11402.       {
  11403.         txt = "&"
  11404.         hint = "Start constraining any players within the radius."
  11405.       }
  11406.       input#TurnOff: =
  11407.       {
  11408.         txt = "&"
  11409.         hint = "Stop constraining any players previously constrained."
  11410.       }
  11411.       output#OnConstraintBroken: =
  11412.       {
  11413.         txt = "&"
  11414.         hint = "Fired when a player breaks through the constraint."
  11415.       }
  11416.     }
  11417.  
  11418.     func_physbox:form =
  11419.     {
  11420.       t_BreakableBrush = !
  11421.       t_Targetname = !
  11422.       t_Origin = !
  11423.       t_RenderFields = !
  11424.       t_Shadow = !
  11425.       _minlight: =
  11426.       {
  11427.         txt = "&"
  11428.         hint = "Minimum Light Level"
  11429.       }
  11430.       spawnflags: =
  11431.       {
  11432.         txt = "&"
  11433.         typ = "X4096"
  11434.         cap = "Start Asleep"
  11435.       }
  11436.       spawnflags: =
  11437.       {
  11438.         txt = "&"
  11439.         typ = "X8192"
  11440.         cap = "Ignore +USE for Pickup"
  11441.       }
  11442.       spawnflags: =
  11443.       {
  11444.         txt = "&"
  11445.         typ = "X16384"
  11446.         cap = "Debris - Don't collide with the player or other debris"
  11447.       }
  11448.       spawnflags: =
  11449.       {
  11450.         txt = "&"
  11451.         typ = "X32768"
  11452.         cap = "Motion Disabled"
  11453.       }
  11454.       spawnflags: =
  11455.       {
  11456.         txt = "&"
  11457.         typ = "X65536"
  11458.         cap = "Use Preferred Carry Angles"
  11459.       }
  11460.       spawnflags: =
  11461.       {
  11462.         txt = "&"
  11463.         typ = "X131072"
  11464.         cap = "Enable motion on Physcannon grab"
  11465.       }
  11466.       spawnflags: =
  11467.       {
  11468.         txt = "&"
  11469.         typ = "X262144"
  11470.         cap = "Not affected by rotor wash"
  11471.       }
  11472.       spawnflags: =
  11473.       {
  11474.         txt = "&"
  11475.         typ = "X524288"
  11476.         cap = "Generate output on +USE "
  11477.       }
  11478.       Damagetype: =
  11479.       {
  11480.         txt = "&"
  11481.         hint = "Impact Damage Type"
  11482.         typ = "C"
  11483.         items = "Blunt"$0D"Sharp"
  11484.         values = "0"$0D"1"
  11485.       }
  11486.       massScale: =
  11487.       {
  11488.         txt = "&"
  11489.         hint = "Mass Scale"
  11490.       }
  11491.       overridescript: =
  11492.       {
  11493.         txt = "&"
  11494.         hint = "Override Parameters"
  11495.       }
  11496.       damagetoenablemotion: =
  11497.       {
  11498.         txt = "&"
  11499.         hint = "Health Level to Override Motion"
  11500.       }
  11501.       forcetoenablemotion: =
  11502.       {
  11503.         txt = "&"
  11504.         hint = "Physics Impact Force to Override Motion"
  11505.       }
  11506.       health: =
  11507.       {
  11508.         txt = "&"
  11509.         hint = "Strength"
  11510.       }
  11511.       preferredcarryangles: =
  11512.       {
  11513.         txt = "&"
  11514.         hint = "Preferred Player-carry Angles"
  11515.       }
  11516.       notsolid: =
  11517.       {
  11518.         txt = "&"
  11519.         hint = "Not solid to world"
  11520.         typ = "C"
  11521.         items = "Solid to World"$0D"Passes through World"
  11522.         values = "0"$0D"1"
  11523.       }
  11524.       input#Wake: =
  11525.       {
  11526.         txt = "&"
  11527.         hint = "Wake up this physics object, if it is sleeping."
  11528.       }
  11529.       input#Sleep: =
  11530.       {
  11531.         txt = "&"
  11532.         hint = "Put this physics object to sleep. It will wake if given the Wa"
  11533.          "ke input, or if force is applied to it. Note that physics objects go"
  11534.          " to sleep automatically after coming to rest for a while, so you don"
  11535.          "'t really need to use this."
  11536.       }
  11537.       input#EnableMotion: =
  11538.       {
  11539.         txt = "&"
  11540.         hint = "Enable physics motion/collision response."
  11541.       }
  11542.       input#DisableMotion: =
  11543.       {
  11544.         txt = "&"
  11545.         hint = "Disable physics motion/collision response."
  11546.       }
  11547.       input#ForceDrop: =
  11548.       {
  11549.         txt = "&"
  11550.         hint = "If this object is being carried by a player, with the physgun "
  11551.          "or +USE, force it to be dropped."
  11552.       }
  11553.       output#OnDamaged: =
  11554.       {
  11555.         txt = "&"
  11556.         hint = "Fired when this entity is damaged."
  11557.       }
  11558.       output#OnAwakened: =
  11559.       {
  11560.         txt = "&"
  11561.         hint = "Fired when this entity becomes awake (collision/force is appli"
  11562.          "ed)."
  11563.       }
  11564.       output#OnMotionEnabled: =
  11565.       {
  11566.         txt = "&"
  11567.         hint = "Fired when motion is enabled due to damage/physcannon/force."
  11568.       }
  11569.       output#OnPhysGunPickup: =
  11570.       {
  11571.         txt = "&"
  11572.         hint = "Fired when a player picks this object up, either with the phys"
  11573.          "gun or +USE."
  11574.       }
  11575.       output#OnPhysGunDrop: =
  11576.       {
  11577.         txt = "&"
  11578.         hint = "Fired when a player drops this object."
  11579.       }
  11580.       output#OnPlayerUse: =
  11581.       {
  11582.         txt = "&"
  11583.         hint = "Fired when the player tries to +USE the physbox. This output w"
  11584.          "ill fire only if the Generate output on +USE spawnflag is set."
  11585.       }
  11586.     }
  11587.  
  11588.  
  11589.     t_func_physbox:incl =
  11590.     {
  11591.       t_BreakableBrush = !
  11592.       t_Targetname = !
  11593.       t_Origin = !
  11594.       t_RenderFields = !
  11595.       t_Shadow = !
  11596.       _minlight: =
  11597.       {
  11598.         txt = "&"
  11599.         hint = "Minimum Light Level"
  11600.       }
  11601.       spawnflags: =
  11602.       {
  11603.         txt = "&"
  11604.         typ = "X4096"
  11605.         cap = "Start Asleep"
  11606.       }
  11607.       spawnflags: =
  11608.       {
  11609.         txt = "&"
  11610.         typ = "X8192"
  11611.         cap = "Ignore +USE for Pickup"
  11612.       }
  11613.       spawnflags: =
  11614.       {
  11615.         txt = "&"
  11616.         typ = "X16384"
  11617.         cap = "Debris - Don't collide with the player or other debris"
  11618.       }
  11619.       spawnflags: =
  11620.       {
  11621.         txt = "&"
  11622.         typ = "X32768"
  11623.         cap = "Motion Disabled"
  11624.       }
  11625.       spawnflags: =
  11626.       {
  11627.         txt = "&"
  11628.         typ = "X65536"
  11629.         cap = "Use Preferred Carry Angles"
  11630.       }
  11631.       spawnflags: =
  11632.       {
  11633.         txt = "&"
  11634.         typ = "X131072"
  11635.         cap = "Enable motion on Physcannon grab"
  11636.       }
  11637.       spawnflags: =
  11638.       {
  11639.         txt = "&"
  11640.         typ = "X262144"
  11641.         cap = "Not affected by rotor wash"
  11642.       }
  11643.       spawnflags: =
  11644.       {
  11645.         txt = "&"
  11646.         typ = "X524288"
  11647.         cap = "Generate output on +USE "
  11648.       }
  11649.       Damagetype: =
  11650.       {
  11651.         txt = "&"
  11652.         hint = "Impact Damage Type"
  11653.         typ = "C"
  11654.         items = "Blunt"$0D"Sharp"
  11655.         values = "0"$0D"1"
  11656.       }
  11657.       massScale: =
  11658.       {
  11659.         txt = "&"
  11660.         hint = "Mass Scale"
  11661.       }
  11662.       overridescript: =
  11663.       {
  11664.         txt = "&"
  11665.         hint = "Override Parameters"
  11666.       }
  11667.       damagetoenablemotion: =
  11668.       {
  11669.         txt = "&"
  11670.         hint = "Health Level to Override Motion"
  11671.       }
  11672.       forcetoenablemotion: =
  11673.       {
  11674.         txt = "&"
  11675.         hint = "Physics Impact Force to Override Motion"
  11676.       }
  11677.       health: =
  11678.       {
  11679.         txt = "&"
  11680.         hint = "Strength"
  11681.       }
  11682.       preferredcarryangles: =
  11683.       {
  11684.         txt = "&"
  11685.         hint = "Preferred Player-carry Angles"
  11686.       }
  11687.       notsolid: =
  11688.       {
  11689.         txt = "&"
  11690.         hint = "Not solid to world"
  11691.         typ = "C"
  11692.         items = "Solid to World"$0D"Passes through World"
  11693.         values = "0"$0D"1"
  11694.       }
  11695.       input#Wake: =
  11696.       {
  11697.         txt = "&"
  11698.         hint = "Wake up this physics object, if it is sleeping."
  11699.       }
  11700.       input#Sleep: =
  11701.       {
  11702.         txt = "&"
  11703.         hint = "Put this physics object to sleep. It will wake if given the Wa"
  11704.          "ke input, or if force is applied to it. Note that physics objects go"
  11705.          " to sleep automatically after coming to rest for a while, so you don"
  11706.          "'t really need to use this."
  11707.       }
  11708.       input#EnableMotion: =
  11709.       {
  11710.         txt = "&"
  11711.         hint = "Enable physics motion/collision response."
  11712.       }
  11713.       input#DisableMotion: =
  11714.       {
  11715.         txt = "&"
  11716.         hint = "Disable physics motion/collision response."
  11717.       }
  11718.       input#ForceDrop: =
  11719.       {
  11720.         txt = "&"
  11721.         hint = "If this object is being carried by a player, with the physgun "
  11722.          "or +USE, force it to be dropped."
  11723.       }
  11724.       output#OnDamaged: =
  11725.       {
  11726.         txt = "&"
  11727.         hint = "Fired when this entity is damaged."
  11728.       }
  11729.       output#OnAwakened: =
  11730.       {
  11731.         txt = "&"
  11732.         hint = "Fired when this entity becomes awake (collision/force is appli"
  11733.          "ed)."
  11734.       }
  11735.       output#OnMotionEnabled: =
  11736.       {
  11737.         txt = "&"
  11738.         hint = "Fired when motion is enabled due to damage/physcannon/force."
  11739.       }
  11740.       output#OnPhysGunPickup: =
  11741.       {
  11742.         txt = "&"
  11743.         hint = "Fired when a player picks this object up, either with the phys"
  11744.          "gun or +USE."
  11745.       }
  11746.       output#OnPhysGunDrop: =
  11747.       {
  11748.         txt = "&"
  11749.         hint = "Fired when a player drops this object."
  11750.       }
  11751.       output#OnPlayerUse: =
  11752.       {
  11753.         txt = "&"
  11754.         hint = "Fired when the player tries to +USE the physbox. This output w"
  11755.          "ill fire only if the Generate output on +USE spawnflag is set."
  11756.       }
  11757.     }
  11758.  
  11759.  
  11760.     t_TwoObjectPhysics:incl =
  11761.     {
  11762.       t_Targetname = !
  11763.       spawnflags: =
  11764.       {
  11765.         txt = "&"
  11766.         typ = "X1"
  11767.         cap = "No Collision until break"
  11768.       }
  11769.       spawnflags: =
  11770.       {
  11771.         txt = "&"
  11772.         typ = "X4"
  11773.         cap = "Start inactive"
  11774.       }
  11775.       spawnflags: =
  11776.       {
  11777.         txt = "&"
  11778.         typ = "X8"
  11779.         cap = "Change mass to keep stable attachment to world"
  11780.       }
  11781.       attach1: =
  11782.       {
  11783.         txt = "&"
  11784.         hint = "Entity 1"
  11785.       }
  11786.       attach2: =
  11787.       {
  11788.         txt = "&"
  11789.         hint = "Entity 2"
  11790.       }
  11791.       constraintsystem: =
  11792.       {
  11793.         txt = "&"
  11794.         hint = "Constraint System Manager"
  11795.       }
  11796.       forcelimit: =
  11797.       {
  11798.         txt = "&"
  11799.         hint = "Force Limit to Break (lbs)"
  11800.       }
  11801.       torquelimit: =
  11802.       {
  11803.         txt = "&"
  11804.         hint = "Torque Limit to Break (lbs * distance)"
  11805.       }
  11806.       breaksound: =
  11807.       {
  11808.         txt = "&"
  11809.         hint = "Play Sound on Break"
  11810.       }
  11811.       input#Break: =
  11812.       {
  11813.         txt = "&"
  11814.         hint = "Force the constraint to break."
  11815.       }
  11816.       input#TurnOn: =
  11817.       {
  11818.         txt = "&"
  11819.         hint = "Enable the constraint.  Do this when the objects don't exist w"
  11820.          "hen the constraint spawns - or when you have deactivated the constra"
  11821.          "int.  Broken constraints can NOT be turned on.  They have been delet"
  11822.          "ed."
  11823.       }
  11824.       input#TurnOff: =
  11825.       {
  11826.         txt = "&"
  11827.         hint = "Disable this constraint."
  11828.       }
  11829.       output#OnBreak: =
  11830.       {
  11831.         txt = "&"
  11832.         hint = "Fired when the constraint breaks."
  11833.       }
  11834.     }
  11835.     phys_constraintsystem:form =
  11836.     {
  11837.       t_Targetname = !
  11838.       additionaliterations: =
  11839.       {
  11840.         txt = "&"
  11841.         hint = "Additional System Iterations"
  11842.       }
  11843.     }
  11844.     phys_keepupright:form =
  11845.     {
  11846.       t_Targetname = !
  11847.       t_Angles = !
  11848.       spawnflags: =
  11849.       {
  11850.         txt = "&"
  11851.         typ = "X1"
  11852.         cap = "Start inactive"
  11853.       }
  11854.       attach1: =
  11855.       {
  11856.         txt = "&"
  11857.         hint = "Target Entity"
  11858.       }
  11859.       angularlimit: =
  11860.       {
  11861.         txt = "&"
  11862.         hint = "Angular Limit"
  11863.       }
  11864.       input#TurnOn: =
  11865.       {
  11866.         txt = "&"
  11867.         hint = "Enable the controller."
  11868.       }
  11869.       input#TurnOff: =
  11870.       {
  11871.         txt = "&"
  11872.         hint = "Disable the controller."
  11873.       }
  11874.     }
  11875.     physics_cannister:form =
  11876.     {
  11877.       t_Targetname = !
  11878.       t_Angles = !
  11879.       t_modelselect = !
  11880.       spawnflags: =
  11881.       {
  11882.         txt = "&"
  11883.         typ = "X1"
  11884.         cap = "Start Asleep"
  11885.       }
  11886.       spawnflags: =
  11887.       {
  11888.         txt = "&"
  11889.         typ = "X2"
  11890.         cap = "Explodes"
  11891.       }
  11892.       expdamage: =
  11893.       {
  11894.         txt = "&"
  11895.         hint = "Explosion Damage"
  11896.       }
  11897.       expradius: =
  11898.       {
  11899.         txt = "&"
  11900.         hint = "Explosion Radius"
  11901.       }
  11902.       health: =
  11903.       {
  11904.         txt = "&"
  11905.         hint = "Health"
  11906.       }
  11907.       thrust: =
  11908.       {
  11909.         txt = "&"
  11910.         hint = "Thrust"
  11911.       }
  11912.       fuel: =
  11913.       {
  11914.         txt = "&"
  11915.         hint = "Fuel Seconds"
  11916.       }
  11917.       rendercolor: =
  11918.       {
  11919.         txt = "&"
  11920.         hint = "Smoke Color (R G B)"
  11921.       }
  11922.       rendercolor: =
  11923.       {
  11924.         Txt = "&"
  11925.         Typ = "LU3"
  11926.         Hint = "Smoke Color (R G B)"
  11927.       }
  11928.       renderamt: =
  11929.       {
  11930.         txt = "&"
  11931.         hint = "Smoke Alpha (0 - 255)"
  11932.       }
  11933.       gassound: =
  11934.       {
  11935.         txt = "&"
  11936.         hint = "Thruster Sound"
  11937.       }
  11938.       input#Activate: =
  11939.       {
  11940.         txt = "&"
  11941.         hint = "Start gas escaping from the cannister."
  11942.       }
  11943.       input#Deactivate: =
  11944.       {
  11945.         txt = "&"
  11946.         hint = "Stop gas escaping from the cannister."
  11947.       }
  11948.       input#Explode: =
  11949.       {
  11950.         txt = "&"
  11951.         hint = "Force the cannister to explode."
  11952.       }
  11953.       input#Wake: =
  11954.       {
  11955.         txt = "&"
  11956.         hint = "Wakes up the cannister, if it is sleeping."
  11957.       }
  11958.       output#OnActivate: =
  11959.       {
  11960.         txt = "&"
  11961.         hint = "Fired when gas starts to escape from the cannister."
  11962.       }
  11963.     }
  11964.     info_constraint_anchor:form =
  11965.     {
  11966.       bbox = '-4 -4 -4 4 4 4'
  11967.       t_Targetname = !
  11968.       t_Parentname = !
  11969.       massScale: =
  11970.       {
  11971.         txt = "&"
  11972.         hint = "Amount to scale the mass of this body in the constraint solver"
  11973.       }
  11974.     }
  11975.     info_mass_center:form =
  11976.     {
  11977.       bbox = '-4 -4 -4 4 4 4'
  11978.       target: =
  11979.       {
  11980.         txt = "&"
  11981.         hint = "Target object"
  11982.       }
  11983.     }
  11984.     phys_spring:form =
  11985.     {
  11986.       t_Targetname = !
  11987.       spawnflags: =
  11988.       {
  11989.         txt = "&"
  11990.         typ = "X1"
  11991.         cap = "Force only on stretch"
  11992.       }
  11993.       attach1: =
  11994.       {
  11995.         txt = "&"
  11996.         hint = "Entity 1"
  11997.       }
  11998.       attach2: =
  11999.       {
  12000.         txt = "&"
  12001.         hint = "Entity 2"
  12002.       }
  12003.       springaxis: =
  12004.       {
  12005.         txt = "&"
  12006.         hint = "Spring Axis"
  12007.       }
  12008.       length: =
  12009.       {
  12010.         txt = "&"
  12011.         hint = "Spring Length"
  12012.       }
  12013.       constant: =
  12014.       {
  12015.         txt = "&"
  12016.         hint = "Spring Constant"
  12017.       }
  12018.       damping: =
  12019.       {
  12020.         txt = "&"
  12021.         hint = "Damping Constant"
  12022.       }
  12023.       relativedamping: =
  12024.       {
  12025.         txt = "&"
  12026.         hint = "Relative Damping Constant"
  12027.       }
  12028.       breaklength: =
  12029.       {
  12030.         txt = "&"
  12031.         hint = "Break on Length"
  12032.       }
  12033.       input#SetSpringConstant: =
  12034.       {
  12035.         txt = "&"
  12036.         hint = "Set the Spring Constant."
  12037.       }
  12038.       input#SetSpringLength: =
  12039.       {
  12040.         txt = "&"
  12041.         hint = "Set the Spring Length."
  12042.       }
  12043.       input#SetSpringDamping: =
  12044.       {
  12045.         txt = "&"
  12046.         hint = "Set the Spring Damping."
  12047.       }
  12048.     }
  12049.     phys_hinge:form =
  12050.     {
  12051.       bbox = '-8 -8 -8 8 8 8'
  12052.       t_TwoObjectPhysics = !
  12053.       hingefriction: =
  12054.       {
  12055.         txt = "&"
  12056.         hint = "Friction"
  12057.       }
  12058.       hingeaxis: =
  12059.       {
  12060.         txt = "&"
  12061.         hint = "Hinge Axis"
  12062.       }
  12063.       SystemLoadScale: =
  12064.       {
  12065.         txt = "&"
  12066.         hint = "Load Scale"
  12067.       }
  12068.       input#SetAngularVelocity: =
  12069.       {
  12070.         txt = "&"
  12071.         hint = "Set angular velocity around the hinge (motor)"
  12072.       }
  12073.     }
  12074.     phys_ballsocket:form =
  12075.     {
  12076.       t_TwoObjectPhysics = !
  12077.     }
  12078.     phys_constraint:form =
  12079.     {
  12080.       t_TwoObjectPhysics = !
  12081.       spawnflags: =
  12082.       {
  12083.         txt = "&"
  12084.         typ = "X1"
  12085.         cap = "No Collision until break"
  12086.       }
  12087.     }
  12088.     phys_pulleyconstraint:form =
  12089.     {
  12090.       t_TwoObjectPhysics = !
  12091.       addlength: =
  12092.       {
  12093.         txt = "&"
  12094.         hint = "Additional Length"
  12095.       }
  12096.       gearratio: =
  12097.       {
  12098.         txt = "&"
  12099.         hint = "Pulley Gear Ratio"
  12100.       }
  12101.       position2: =
  12102.       {
  12103.         txt = "&"
  12104.         hint = "Pulley Position 2"
  12105.       }
  12106.       spawnflags: =
  12107.       {
  12108.         txt = "&"
  12109.         typ = "X1"
  12110.         cap = "No Collision until break"
  12111.       }
  12112.       spawnflags: =
  12113.       {
  12114.         txt = "&"
  12115.         typ = "X2"
  12116.         cap = "Keep Rigid"
  12117.       }
  12118.     }
  12119.     phys_slideconstraint:form =
  12120.     {
  12121.       t_TwoObjectPhysics = !
  12122.       spawnflags: =
  12123.       {
  12124.         txt = "&"
  12125.         typ = "X1"
  12126.         cap = "No Collision until break"
  12127.       }
  12128.       spawnflags: =
  12129.       {
  12130.         txt = "&"
  12131.         typ = "X2"
  12132.         cap = "Limit Endpoints"
  12133.       }
  12134.       slideaxis: =
  12135.       {
  12136.         txt = "&"
  12137.         hint = "Sliding Axis"
  12138.       }
  12139.       slidefriction: =
  12140.       {
  12141.         txt = "&"
  12142.         hint = "Friction"
  12143.       }
  12144.       SystemLoadScale: =
  12145.       {
  12146.         txt = "&"
  12147.         hint = "Load Scale"
  12148.       }
  12149.       input#SetVelocity: =
  12150.       {
  12151.         txt = "&"
  12152.         hint = "Set linear velocity along the constraint"
  12153.       }
  12154.     }
  12155.     phys_lengthconstraint:form =
  12156.     {
  12157.       t_TwoObjectPhysics = !
  12158.       addlength: =
  12159.       {
  12160.         txt = "&"
  12161.         hint = "Additional Length"
  12162.       }
  12163.       minlength: =
  12164.       {
  12165.         txt = "&"
  12166.         hint = "Minimum Length"
  12167.       }
  12168.       attachpoint: =
  12169.       {
  12170.         txt = "&"
  12171.         hint = "Attached object 2 point"
  12172.       }
  12173.       spawnflags: =
  12174.       {
  12175.         txt = "&"
  12176.         typ = "X1"
  12177.         cap = "No Collision until break"
  12178.       }
  12179.       spawnflags: =
  12180.       {
  12181.         txt = "&"
  12182.         typ = "X2"
  12183.         cap = "Keep Rigid"
  12184.       }
  12185.     }
  12186.     phys_ragdollconstraint:form =
  12187.     {
  12188.       t_TwoObjectPhysics = !
  12189.       spawnflags: =
  12190.       {
  12191.         txt = "&"
  12192.         typ = "X1"
  12193.         cap = "No Collision until break"
  12194.       }
  12195.       spawnflags: =
  12196.       {
  12197.         txt = "&"
  12198.         typ = "X2"
  12199.         cap = "Only limit rotation (free movement)"
  12200.       }
  12201.       xmin: =
  12202.       {
  12203.         txt = "&"
  12204.         hint = "X axis min limit"
  12205.       }
  12206.       xmax: =
  12207.       {
  12208.         txt = "&"
  12209.         hint = "X axis max limit"
  12210.       }
  12211.       ymin: =
  12212.       {
  12213.         txt = "&"
  12214.         hint = "Y axis min limit"
  12215.       }
  12216.       ymax: =
  12217.       {
  12218.         txt = "&"
  12219.         hint = "Y axis max limit"
  12220.       }
  12221.       zmin: =
  12222.       {
  12223.         txt = "&"
  12224.         hint = "Z axis min limit"
  12225.       }
  12226.       zmax: =
  12227.       {
  12228.         txt = "&"
  12229.         hint = "Z axis max limit"
  12230.       }
  12231.       xfriction: =
  12232.       {
  12233.         txt = "&"
  12234.         hint = "X axis friction"
  12235.       }
  12236.       yfriction: =
  12237.       {
  12238.         txt = "&"
  12239.         hint = "Y axis friction"
  12240.       }
  12241.       zfriction: =
  12242.       {
  12243.         txt = "&"
  12244.         hint = "Z axis friction"
  12245.       }
  12246.     }
  12247.     phys_convert:form =
  12248.     {
  12249.       bbox = '-8 -8 -8 8 8 8'
  12250.       t_Targetname = !
  12251.       spawnflags: =
  12252.       {
  12253.         txt = "&"
  12254.         typ = "X1"
  12255.         cap = "Convert Asleep"
  12256.       }
  12257.       target: =
  12258.       {
  12259.         txt = "&"
  12260.         hint = "Entity to convert"
  12261.       }
  12262.       swapmodel: =
  12263.       {
  12264.         txt = "&"
  12265.         hint = "Model Swap Entity"
  12266.       }
  12267.       output#OnConvert: =
  12268.       {
  12269.         txt = "&"
  12270.         hint = "Fires after the conversion has taken place."
  12271.       }
  12272.       input#ConvertTarget: =
  12273.       {
  12274.         txt = "&"
  12275.         hint = "Converts this entity's target to a physically simulated object"
  12276.          "."
  12277.       }
  12278.     }
  12279.     t_ForceController:incl =
  12280.     {
  12281.       t_Targetname = !
  12282.       spawnflags: =
  12283.       {
  12284.         txt = "&"
  12285.         typ = "X1"
  12286.         cap = "Start On"
  12287.       }
  12288.       spawnflags: =
  12289.       {
  12290.         txt = "&"
  12291.         typ = "X2"
  12292.         cap = "Apply Force"
  12293.       }
  12294.       spawnflags: =
  12295.       {
  12296.         txt = "&"
  12297.         typ = "X4"
  12298.         cap = "Apply Torque"
  12299.       }
  12300.       spawnflags: =
  12301.       {
  12302.         txt = "&"
  12303.         typ = "X8"
  12304.         cap = "Orient Locally"
  12305.       }
  12306.       spawnflags: =
  12307.       {
  12308.         txt = "&"
  12309.         typ = "X16"
  12310.         cap = "Ignore Mass"
  12311.       }
  12312.       attach1: =
  12313.       {
  12314.         txt = "&"
  12315.         hint = "Attached Object"
  12316.       }
  12317.       forcetime: =
  12318.       {
  12319.         txt = "&"
  12320.         hint = "Time of Force (0=inf)"
  12321.       }
  12322.       input#Activate: =
  12323.       {
  12324.         txt = "&"
  12325.         hint = "Turn the force on"
  12326.       }
  12327.       input#Deactivate: =
  12328.       {
  12329.         txt = "&"
  12330.         hint = "Turn the force off"
  12331.       }
  12332.       input#Scale: =
  12333.       {
  12334.         txt = "&"
  12335.         hint = "Set Force Scale"
  12336.       }
  12337.     }
  12338.     phys_thruster:form =
  12339.     {
  12340.       t_Angles = !
  12341.       t_ForceController = !
  12342.       spawnflags: =
  12343.       {
  12344.         txt = "&"
  12345.         typ = "X32"
  12346.         cap = "Ignore Pos"
  12347.       }
  12348.       force: =
  12349.       {
  12350.         txt = "&"
  12351.         hint = "Force"
  12352.       }
  12353.     }
  12354.     phys_torque:form =
  12355.     {
  12356.       t_ForceController = !
  12357.       force: =
  12358.       {
  12359.         txt = "&"
  12360.         hint = "Angular Acceleration"
  12361.       }
  12362.       axis: =
  12363.       {
  12364.         txt = "&"
  12365.         hint = "Rotation Axis"
  12366.       }
  12367.     }
  12368.     phys_motor:form =
  12369.     {
  12370.       bbox = '-8 -8 -8 8 8 8'
  12371.       t_Targetname = !
  12372.       speed: =
  12373.       {
  12374.         txt = "&"
  12375.         hint = "Rotation Speed"
  12376.       }
  12377.       spinup: =
  12378.       {
  12379.         txt = "&"
  12380.         hint = "Spin up time"
  12381.       }
  12382.       inertiafactor: =
  12383.       {
  12384.         txt = "&"
  12385.         hint = "System Interia Scale"
  12386.       }
  12387.       axis: =
  12388.       {
  12389.         txt = "&"
  12390.         hint = "Rotation Axis"
  12391.       }
  12392.       spawnflags: =
  12393.       {
  12394.         txt = "&"
  12395.         typ = "X1"
  12396.         cap = "Start On"
  12397.       }
  12398.       spawnflags: =
  12399.       {
  12400.         txt = "&"
  12401.         typ = "X2"
  12402.         cap = "No world collision"
  12403.       }
  12404.       spawnflags: =
  12405.       {
  12406.         txt = "&"
  12407.         typ = "X4"
  12408.         cap = "Hinge Object"
  12409.       }
  12410.       attach1: =
  12411.       {
  12412.         txt = "&"
  12413.         hint = "Attached Object"
  12414.       }
  12415.       input#SetSpeed: =
  12416.       {
  12417.         txt = "&"
  12418.         hint = "Sets target speed"
  12419.       }
  12420.       input#TurnOn: =
  12421.       {
  12422.         txt = "&"
  12423.         hint = "Turns motor on"
  12424.       }
  12425.       input#TurnOff: =
  12426.       {
  12427.         txt = "&"
  12428.         hint = "Turns motor off"
  12429.       }
  12430.     }
  12431.     phys_magnet:form =
  12432.     {
  12433.       t_Targetname = !
  12434.       t_Parentname = !
  12435.       t_Angles = !
  12436.       t_Studiomodel = !
  12437.       spawnflags: =
  12438.       {
  12439.         txt = "&"
  12440.         typ = "X1"
  12441.         cap = "Start Asleep"
  12442.       }
  12443.       spawnflags: =
  12444.       {
  12445.         txt = "&"
  12446.         typ = "X2"
  12447.         cap = "Motion Disabled"
  12448.       }
  12449.       spawnflags: =
  12450.       {
  12451.         txt = "&"
  12452.         typ = "X4"
  12453.         cap = "Suck On Touch"
  12454.       }
  12455.       spawnflags: =
  12456.       {
  12457.         txt = "&"
  12458.         typ = "X8"
  12459.         cap = "Allow Attached Rotation"
  12460.       }
  12461.       spawnflags: =
  12462.       {
  12463.         txt = "&"
  12464.         typ = "X16"
  12465.         cap = "Coast jeep pickup hack"
  12466.       }
  12467.       forcelimit: =
  12468.       {
  12469.         txt = "&"
  12470.         hint = "Force Limit to Break (lbs)"
  12471.       }
  12472.       torquelimit: =
  12473.       {
  12474.         txt = "&"
  12475.         hint = "Torque Limit to Break (lbs * distance)"
  12476.       }
  12477.       massScale: =
  12478.       {
  12479.         txt = "&"
  12480.         hint = "Mass Scale"
  12481.       }
  12482.       overridescript: =
  12483.       {
  12484.         txt = "&"
  12485.         hint = "Override parameters"
  12486.       }
  12487.       maxobjects: =
  12488.       {
  12489.         txt = "&"
  12490.         hint = "Maximum Attached Objects"
  12491.       }
  12492.       input#TurnOn: =
  12493.       {
  12494.         txt = "&"
  12495.         hint = "Turn the magnet on."
  12496.       }
  12497.       input#TurnOff: =
  12498.       {
  12499.         txt = "&"
  12500.         hint = "The the magnet off. This will detach anything current stuck to"
  12501.          " the magnet."
  12502.       }
  12503.       output#OnAttach: =
  12504.       {
  12505.         txt = "&"
  12506.         hint = "Fired when an entity is grabbed by the magnet."
  12507.       }
  12508.       output#OnDetach: =
  12509.       {
  12510.         txt = "&"
  12511.         hint = "Fired when an entity is released by the magnet."
  12512.       }
  12513.     }
  12514.     t_prop_detail_base:incl =
  12515.     {
  12516.       model: =
  12517.       {
  12518.         txt = "&"
  12519.         hint = "World model"
  12520.         typ = "B"
  12521.         Cap = "models..."
  12522.         form = "t_models_hl2_form:form"
  12523.       }
  12524.     }
  12525.     t_prop_static_base:incl =
  12526.     {
  12527.       t_Angles = !
  12528.       t_DXLevelChoice = !
  12529.       t_modelselect = !
  12530.       skin: =
  12531.       {
  12532.         txt = "&"
  12533.         hint = "Skin"
  12534.       }
  12535.       solid: =
  12536.       {
  12537.         txt = "&"
  12538.         hint = "Collisions"
  12539.         typ = "C"
  12540.         items = "Not Solid"$0D"Use Bounding Box"$0D"Use VPhysics"
  12541.         values = "0"$0D"2"$0D"6"
  12542.       }
  12543.       disableshadows: =
  12544.       {
  12545.         txt = "&"
  12546.         hint = "Disable Shadows"
  12547.         typ = "C"
  12548.         items = "No"$0D"Yes"
  12549.         values = "0"$0D"1"
  12550.       }
  12551.       screenspacefade: =
  12552.       {
  12553.         txt = "&"
  12554.         hint = "Screen Space Fade"
  12555.         typ = "C"
  12556.         items = "No"$0D"Yes"
  12557.         values = "0"$0D"1"
  12558.       }
  12559.       fademindist: =
  12560.       {
  12561.         txt = "&"
  12562.         hint = "Start Fade Dist/Pixels"
  12563.       }
  12564.       fademaxdist: =
  12565.       {
  12566.         txt = "&"
  12567.         hint = "End Fade Dist/Pixels"
  12568.       }
  12569.       fadescale: =
  12570.       {
  12571.         txt = "&"
  12572.         hint = "Fade Scale"
  12573.       }
  12574.       lightingorigin: =
  12575.       {
  12576.         txt = "&"
  12577.         hint = "Lighting Origin"
  12578.       }
  12579.     }
  12580.     t_prop_dynamic_base:incl =
  12581.     {
  12582.       t_Parentname = !
  12583.       t_Global = !
  12584.       t_Angles = !
  12585.       t_Studiomodel = !
  12586.       t_BreakableProp = !
  12587.       t_DXLevelChoice = !
  12588.       solid: =
  12589.       {
  12590.         txt = "&"
  12591.         hint = "Collisions"
  12592.         typ = "C"
  12593.         items = "Not Solid"$0D"Use Bounding Box"$0D"Use VPhysics"
  12594.         values = "0"$0D"2"$0D"6"
  12595.       }
  12596.       spawnflags: =
  12597.       {
  12598.         txt = "&"
  12599.         typ = "X64"
  12600.         cap = "Use Hitboxes for Renderbox"
  12601.       }
  12602.       DefaultAnim: =
  12603.       {
  12604.         txt = "&"
  12605.         hint = "Default Animation"
  12606.       }
  12607.       RandomAnimation: =
  12608.       {
  12609.         txt = "&"
  12610.         hint = "Randomly Animate"
  12611.         typ = "C"
  12612.         items = "No"$0D"Yes"
  12613.         values = "0"$0D"1"
  12614.       }
  12615.       MinAnimTime: =
  12616.       {
  12617.         txt = "&"
  12618.         hint = "Min Random Anim Time"
  12619.       }
  12620.       MaxAnimTime: =
  12621.       {
  12622.         txt = "&"
  12623.         hint = "Max Random Anim Time"
  12624.       }
  12625.       SetBodyGroup: =
  12626.       {
  12627.         txt = "&"
  12628.         hint = "Body Group"
  12629.       }
  12630.       fademindist: =
  12631.       {
  12632.         txt = "&"
  12633.         hint = "Start Fade Dist"
  12634.       }
  12635.       fademaxdist: =
  12636.       {
  12637.         txt = "&"
  12638.         hint = "End Fade Dist"
  12639.       }
  12640.       fadescale: =
  12641.       {
  12642.         txt = "&"
  12643.         hint = "Fade Scale"
  12644.       }
  12645.       input#SetAnimation: =
  12646.       {
  12647.         txt = "&"
  12648.         hint = "Force the prop to play an animation. The parameter should be t"
  12649.          "he name of the animation."
  12650.       }
  12651.       input#SetDefaultAnimation: =
  12652.       {
  12653.         txt = "&"
  12654.         hint = "Set the Default Animation to the one specified in the paramete"
  12655.          "r."
  12656.       }
  12657.       input#SetBodyGroup: =
  12658.       {
  12659.         txt = "&"
  12660.         hint = "Set the visible bodygroup, by index."
  12661.       }
  12662.       input#TurnOn: =
  12663.       {
  12664.         txt = "&"
  12665.         hint = "Make the prop visible."
  12666.       }
  12667.       input#TurnOff: =
  12668.       {
  12669.         txt = "&"
  12670.         hint = "Make the prop invisible."
  12671.       }
  12672.       output#OnAnimationBegun: =
  12673.       {
  12674.         txt = "&"
  12675.         hint = "Fired whenever a new animation has begun playing."
  12676.       }
  12677.       output#OnAnimationDone: =
  12678.       {
  12679.         txt = "&"
  12680.         hint = "Fired whenever an animation is complete."
  12681.       }
  12682.     }
  12683.     prop_detail:form =
  12684.     {
  12685.       t_prop_detail_base = !
  12686.       t_modelselect = !
  12687.     }
  12688.     prop_static:form =
  12689.     {
  12690.       t_prop_static_base = !
  12691.     }
  12692.     prop_dynamic:form =
  12693.     {
  12694.       t_prop_dynamic_base = !
  12695.       t_EnableDisable = !
  12696.     }
  12697.     prop_dynamic_override:form =
  12698.     {
  12699.       t_prop_dynamic_base = !
  12700.       health: =
  12701.       {
  12702.         txt = "&"
  12703.         hint = "Health"
  12704.       }
  12705.     }
  12706.     t_BasePropPhysics:incl =
  12707.     {
  12708.       t_Targetname = !
  12709.       t_Global = !
  12710.       t_Angles = !
  12711.       t_Studiomodel = !
  12712.       t_BreakableProp = !
  12713.       t_DXLevelChoice = !
  12714.       spawnflags: =
  12715.       {
  12716.         txt = "&"
  12717.         typ = "X1"
  12718.         cap = "Start Asleep"
  12719.       }
  12720.       spawnflags: =
  12721.       {
  12722.         txt = "&"
  12723.         typ = "X2"
  12724.         cap = "Don't take physics damage"
  12725.       }
  12726.       spawnflags: =
  12727.       {
  12728.         txt = "&"
  12729.         typ = "X4"
  12730.         cap = "Debris - Don't collide with the player or other debris"
  12731.       }
  12732.       spawnflags: =
  12733.       {
  12734.         txt = "&"
  12735.         typ = "X8"
  12736.         cap = "Motion Disabled"
  12737.       }
  12738.       spawnflags: =
  12739.       {
  12740.         txt = "&"
  12741.         typ = "X64"
  12742.         cap = "Enable motion on Physcannon grab"
  12743.       }
  12744.       spawnflags: =
  12745.       {
  12746.         txt = "&"
  12747.         typ = "X128"
  12748.         cap = "Not affected by rotor wash"
  12749.       }
  12750.       spawnflags: =
  12751.       {
  12752.         txt = "&"
  12753.         typ = "X256"
  12754.         cap = "Generate output on +USE "
  12755.       }
  12756.       spawnflags: =
  12757.       {
  12758.         txt = "&"
  12759.         typ = "X512"
  12760.         cap = "Prevent pickup"
  12761.       }
  12762.       spawnflags: =
  12763.       {
  12764.         txt = "&"
  12765.         typ = "X1024"
  12766.         cap = "Prevent motion enable on player bump"
  12767.       }
  12768.       spawnflags: =
  12769.       {
  12770.         txt = "&"
  12771.         typ = "X4096"
  12772.         cap = "Debris with trigger interaction"
  12773.       }
  12774.       minhealthdmg: =
  12775.       {
  12776.         txt = "&"
  12777.         hint = "Min Damage to Hurt"
  12778.       }
  12779.       shadowcastdist: =
  12780.       {
  12781.         txt = "&"
  12782.         hint = "Shadow Cast Distance"
  12783.       }
  12784.       physdamagescale: =
  12785.       {
  12786.         txt = "&"
  12787.         hint = "Physics Impact Damage Scale"
  12788.       }
  12789.       Damagetype: =
  12790.       {
  12791.         txt = "&"
  12792.         hint = "Impact damage type"
  12793.         typ = "C"
  12794.         items = "Blunt"$0D"Sharp"
  12795.         values = "0"$0D"1"
  12796.       }
  12797.       nodamageforces: =
  12798.       {
  12799.         txt = "&"
  12800.         hint = "Damaging it Doesn't Push It"
  12801.         typ = "C"
  12802.         items = "No"$0D"Yes"
  12803.         values = "0"$0D"1"
  12804.       }
  12805.       inertiaScale: =
  12806.       {
  12807.         txt = "&"
  12808.         hint = "Scale Factor For Inertia"
  12809.       }
  12810.       massScale: =
  12811.       {
  12812.         txt = "&"
  12813.         hint = "Mass Scale"
  12814.       }
  12815.       overridescript: =
  12816.       {
  12817.         txt = "&"
  12818.         hint = "Override Parameters"
  12819.       }
  12820.       damagetoenablemotion: =
  12821.       {
  12822.         txt = "&"
  12823.         hint = "Health Level to Override Motion"
  12824.       }
  12825.       forcetoenablemotion: =
  12826.       {
  12827.         txt = "&"
  12828.         hint = "Physics Impact Force to Override Motion"
  12829.       }
  12830.       fademindist: =
  12831.       {
  12832.         txt = "&"
  12833.         hint = "Start Fade Dist"
  12834.       }
  12835.       fademaxdist: =
  12836.       {
  12837.         txt = "&"
  12838.         hint = "End Fade Dist"
  12839.       }
  12840.       fadescale: =
  12841.       {
  12842.         txt = "&"
  12843.         hint = "fade scale"
  12844.       }
  12845.       input#Wake: =
  12846.       {
  12847.         txt = "&"
  12848.         hint = "Wake up this physics object, if it is sleeping."
  12849.       }
  12850.       input#Sleep: =
  12851.       {
  12852.         txt = "&"
  12853.         hint = "Put this physics object to sleep. It will wake if given the Wa"
  12854.          "ke input, or if force is applied to it. Note that physics objects go"
  12855.          " to sleep automatically after coming to rest for a while, so you don"
  12856.          "'t really need to use this."
  12857.       }
  12858.       input#EnableMotion: =
  12859.       {
  12860.         txt = "&"
  12861.         hint = "Enable physics motion/collision response."
  12862.       }
  12863.       input#DisableMotion: =
  12864.       {
  12865.         txt = "&"
  12866.         hint = "Disable physics motion/collision response."
  12867.       }
  12868.       input#DisableFloating: =
  12869.       {
  12870.         txt = "&"
  12871.         hint = "Disable fluid/floating simulation to reduce cost."
  12872.       }
  12873.       input#SetBodyGroup: =
  12874.       {
  12875.         txt = "&"
  12876.         hint = "Set this prop's body group (from 0 - n)."
  12877.       }
  12878.       input#physdamagescale: =
  12879.       {
  12880.         txt = "&"
  12881.         hint = "Set the Physics Impact Damage Scale for this character. NOTE: "
  12882.          "0 means this feature is disabled for backwards compatibility."
  12883.       }
  12884.       input#EnableDamageForces: =
  12885.       {
  12886.         txt = "&"
  12887.         hint = "Damaging the entity applies physics forces to it."
  12888.       }
  12889.       input#DisableDamageForces: =
  12890.       {
  12891.         txt = "&"
  12892.         hint = "Damaging the entity does *not* apply physics forces to it."
  12893.       }
  12894.       output#OnMotionEnabled: =
  12895.       {
  12896.         txt = "&"
  12897.         hint = "Fired when motion is enabled on this prop, either via 'Health "
  12898.          "Level to Override Motion' or from the EnableMotion input."
  12899.       }
  12900.       output#OnAwakened: =
  12901.       {
  12902.         txt = "&"
  12903.         hint = "Fired when this entity becomes awake (collision/force is appli"
  12904.          "ed to it while it's asleep)."
  12905.       }
  12906.       output#OnPhysGunPickup: =
  12907.       {
  12908.         txt = "&"
  12909.         hint = "Fired when the player picks up the prop with the physcannon or"
  12910.          " +USE."
  12911.       }
  12912.       output#OnPhysGunDrop: =
  12913.       {
  12914.         txt = "&"
  12915.         hint = "Fired when the player drops the prop with the physcannon or US"
  12916.          "E."
  12917.       }
  12918.       output#OnPlayerUse: =
  12919.       {
  12920.         txt = "&"
  12921.         hint = "Fired when the player tries to +USE the physbox. This output w"
  12922.          "ill fire only if the Generate output on +USE spawnflag is set."
  12923.       }
  12924.     }
  12925.     prop_physics_override:form =
  12926.     {
  12927.       t_BasePropPhysics = !
  12928.       health: =
  12929.       {
  12930.         txt = "&"
  12931.         hint = "Health"
  12932.       }
  12933.       input#Ignite: =
  12934.       {
  12935.         txt = "&"
  12936.         hint = "Ignite, burst into flames."
  12937.       }
  12938.     }
  12939.  
  12940.     prop_physics:form =
  12941.     {
  12942.       t_BasePropPhysics = !
  12943.       input#Ignite: =
  12944.       {
  12945.         txt = "&"
  12946.         hint = "Ignite, burst into flames."
  12947.       }
  12948.     }
  12949.  
  12950.     t_prop_physics:incl =
  12951.     {
  12952.       t_BasePropPhysics = !
  12953.       input#Ignite: =
  12954.       {
  12955.         txt = "&"
  12956.         hint = "Ignite, burst into flames."
  12957.       }
  12958.     }
  12959.     prop_physics_multiplayer:form =
  12960.     {
  12961.       t_prop_physics = !
  12962.     }
  12963.     prop_ragdoll:form =
  12964.     {
  12965.       t_Angles = !
  12966.       t_Targetname = !
  12967.       t_Studiomodel = !
  12968.       t_DXLevelChoice = !
  12969.       spawnflags: =
  12970.       {
  12971.         txt = "&"
  12972.         typ = "X4"
  12973.         cap = "Debris - Don't collide with the player or other debris"
  12974.       }
  12975.       spawnflags: =
  12976.       {
  12977.         txt = "&"
  12978.         typ = "X8192"
  12979.         cap = "Allow Dissolve"
  12980.       }
  12981.       angleOverride: =
  12982.       {
  12983.         txt = "&"
  12984.         hint = "Override Animation"
  12985.       }
  12986.       fademindist: =
  12987.       {
  12988.         txt = "&"
  12989.         hint = "Start Fade Dist"
  12990.       }
  12991.       fademaxdist: =
  12992.       {
  12993.         txt = "&"
  12994.         hint = "End Fade Dist"
  12995.       }
  12996.       fadescale: =
  12997.       {
  12998.         txt = "&"
  12999.         hint = "fade scale"
  13000.       }
  13001.     }
  13002.     prop_dynamic_ornament:form =
  13003.     {
  13004.       t_prop_dynamic_base = !
  13005.       solid: =
  13006.       {
  13007.         txt = "&"
  13008.         hint = "Collisions"
  13009.         typ = "C"
  13010.         items = "Not Solid"
  13011.         values = "0"
  13012.       }
  13013.       InitialOwner: =
  13014.       {
  13015.         txt = "&"
  13016.         hint = "Target Entity"
  13017.       }
  13018.       input#SetAttached: =
  13019.       {
  13020.         txt = "&"
  13021.         hint = "Attach the ornament to a different entity. Parameter should be"
  13022.          " the name of entity to attach to."
  13023.       }
  13024.       input#Detach: =
  13025.       {
  13026.         txt = "&"
  13027.         hint = "Detach from the Target Entity and become invisible. The orname"
  13028.          "nt can be re-attached with the SetAttached input."
  13029.       }
  13030.     }
  13031.     func_areaportal:form =
  13032.     {
  13033.       t_Targetname = !
  13034.       target: =
  13035.       {
  13036.         txt = "&"
  13037.         hint = "Name of Linked Door"
  13038.       }
  13039.       StartOpen: =
  13040.       {
  13041.         txt = "&"
  13042.         hint = "Initial State"
  13043.         typ = "C"
  13044.         items = "Closed"$0D"Open"
  13045.         values = "0"$0D"1"
  13046.       }
  13047.       input#Open: =
  13048.       {
  13049.         txt = "&"
  13050.         hint = "Open the portal. When the portal is open is can be seen throug"
  13051.          "h."
  13052.       }
  13053.       input#Close: =
  13054.       {
  13055.         txt = "&"
  13056.         hint = "Close the portal. When the portal is closed it cannot be seen "
  13057.          "through."
  13058.       }
  13059.       input#Toggle: =
  13060.       {
  13061.         txt = "&"
  13062.         hint = "Toggle the open/closed state of the portal."
  13063.       }
  13064.     }
  13065.     func_occluder:form =
  13066.     {
  13067.       t_Targetname = !
  13068.       StartActive: =
  13069.       {
  13070.         txt = "&"
  13071.         hint = "Initial State"
  13072.         typ = "C"
  13073.         items = "Inactive"$0D"Active"
  13074.         values = "0"$0D"1"
  13075.       }
  13076.       input#Deactivate: =
  13077.       {
  13078.         txt = "&"
  13079.         hint = "Deactivate the occluder, When inactive, it can be seen through"
  13080.          "."
  13081.       }
  13082.       input#Activate: =
  13083.       {
  13084.         txt = "&"
  13085.         hint = "Activate the occluder. When active, it cannot be seen through."
  13086.       }
  13087.       input#Toggle: =
  13088.       {
  13089.         txt = "&"
  13090.         hint = "Toggle the active/inactive state of the occluder."
  13091.       }
  13092.     }
  13093.     func_breakable:form =
  13094.     {
  13095.       t_BreakableBrush = !
  13096.       t_Origin = !
  13097.       t_RenderFields = !
  13098.       t_Shadow = !
  13099.       minhealthdmg: =
  13100.       {
  13101.         txt = "&"
  13102.         hint = "Min Damage to Hurt"
  13103.       }
  13104.       _minlight: =
  13105.       {
  13106.         txt = "&"
  13107.         hint = "Minimum Light Level"
  13108.       }
  13109.       physdamagescale: =
  13110.       {
  13111.         txt = "&"
  13112.         hint = "Physics Impact Damage Scale"
  13113.       }
  13114.     }
  13115.     func_breakable_surf:form =
  13116.     {
  13117.       t_BreakableBrush = !
  13118.       t_RenderFields = !
  13119.       t_Shadow = !
  13120.       health: =
  13121.       {
  13122.         txt = "&"
  13123.         hint = "Health"
  13124.       }
  13125.       fragility: =
  13126.       {
  13127.         txt = "&"
  13128.         hint = "Fragility"
  13129.       }
  13130.       upperleft: = {txt = "&" hint = "corner for positioning of broken glass"}
  13131.       upperright: = {txt = "&" hint = "corner for positioning of broken glass"}
  13132.       lowerright: = {txt = "&" hint = "corner for positioning of broken glass"}
  13133.       lowerleft: = {txt = "&" hint = "corner for positioning of broken glass"}
  13134.       surfacetype: =
  13135.       {
  13136.         txt = "&"
  13137.         hint = "Surface Type"
  13138.         typ = "C"
  13139.         items = "Glass"$0D"Tile"
  13140.         values = "0"$0D"1"
  13141.       }
  13142.       input#Shatter: =
  13143.       {
  13144.         txt = "&"
  13145.         hint = "Shatter the window. Input a vector. First two coordinates are "
  13146.          "the X,Y center of the shattering (as values from from 0-1). The thir"
  13147.          "d coordinate is the radius of the shatter, in inches."
  13148.       }
  13149.     }
  13150.     func_conveyor:form =
  13151.     {
  13152.       t_Targetname = !
  13153.       t_Parentname = !
  13154.       t_RenderFields = !
  13155.       t_Shadow = !
  13156.       movedir: =
  13157.       {
  13158.         txt = "&"
  13159.         hint = "Move Direction (Pitch Yaw Roll)"
  13160.       }
  13161.       spawnflags: =
  13162.       {
  13163.         txt = "&"
  13164.         typ = "X1"
  13165.         cap = "No Push"
  13166.       }
  13167.       spawnflags: =
  13168.       {
  13169.         txt = "&"
  13170.         typ = "X2"
  13171.         cap = "Not Solid"
  13172.       }
  13173.       speed: =
  13174.       {
  13175.         txt = "&"
  13176.         hint = "Conveyor Speed"
  13177.       }
  13178.       _minlight: =
  13179.       {
  13180.         txt = "&"
  13181.         hint = "Minimum Light Level"
  13182.       }
  13183.       input#ToggleDirection: =
  13184.       {
  13185.         txt = "&"
  13186.         hint = "ToggleDirection"
  13187.       }
  13188.       input#SetSpeed: =
  13189.       {
  13190.         txt = "&"
  13191.         hint = "SetSpeed"
  13192.       }
  13193.     }
  13194.     func_detail:form =
  13195.     {
  13196.       t_DXLevelChoice = !
  13197.     }
  13198.     func_illusionary:form =
  13199.     {
  13200.       t_Targetname = !
  13201.       t_Parentname = !
  13202.       t_Origin = !
  13203.       t_RenderFields = !
  13204.       t_Shadow = !
  13205.       _minlight: =
  13206.       {
  13207.         txt = "&"
  13208.         hint = "Minimum Light Level"
  13209.       }
  13210.     }
  13211.     func_precipitation:form =
  13212.     {
  13213.       t_Targetname = !
  13214.       t_Parentname = !
  13215.       renderamt: =
  13216.       {
  13217.         txt = "&"
  13218.         hint = "Density (0-100%)"
  13219.       }
  13220.       rendercolor: =
  13221.       {
  13222.         txt = "&"
  13223.         hint = "Color (R G B)"
  13224.       }
  13225.       rendercolor: =
  13226.       {
  13227.         Txt = "&"
  13228.         Typ = "LU3"
  13229.         Hint = "Color (R G B)"
  13230.       }
  13231.       preciptype: =
  13232.       {
  13233.         txt = "&"
  13234.         hint = "Precipitation Type"
  13235.         typ = "C"
  13236.         items = "Rain"$0D"Snow"
  13237.         values = "0"$0D"1"
  13238.       }
  13239.     }
  13240.     func_wall_toggle:form =
  13241.     {
  13242.       t_func_wall = !
  13243.       spawnflags: =
  13244.       {
  13245.         txt = "&"
  13246.         typ = "X1"
  13247.         cap = "Starts Invisible"
  13248.       }
  13249.       input#Toggle: =
  13250.       {
  13251.         txt = "&"
  13252.         hint = "Toggle the brush on/off. When off, the brush will be non-solid"
  13253.          " and invisible."
  13254.       }
  13255.     }
  13256.     func_guntarget:form =
  13257.     {
  13258.       t_Targetname = !
  13259.       t_Parentname = !
  13260.       t_RenderFields = !
  13261.       t_Global = !
  13262.       speed: =
  13263.       {
  13264.         txt = "&"
  13265.         hint = "Speed (units per second)"
  13266.       }
  13267.       target: =
  13268.       {
  13269.         txt = "&"
  13270.         hint = "First stop target"
  13271.       }
  13272.       health: =
  13273.       {
  13274.         txt = "&"
  13275.         hint = "Damage to Take"
  13276.       }
  13277.       _minlight: =
  13278.       {
  13279.         txt = "&"
  13280.         hint = "Minimum Light Level"
  13281.       }
  13282.       input#Start: =
  13283.       {
  13284.         txt = "&"
  13285.         hint = "Start the target moving."
  13286.       }
  13287.       input#Stop: =
  13288.       {
  13289.         txt = "&"
  13290.         hint = "Stop the target from moving."
  13291.       }
  13292.       input#Toggle: =
  13293.       {
  13294.         txt = "&"
  13295.         hint = "Toggle the target between moving and stopped."
  13296.       }
  13297.       output#OnDeath: =
  13298.       {
  13299.         txt = "&"
  13300.         hint = "Fires when the target is killed."
  13301.       }
  13302.     }
  13303.     t_PlatSounds:incl =
  13304.     {
  13305.       movesnd: =
  13306.       {
  13307.         txt = "&"
  13308.         hint = "Move Sound"
  13309.         typ = "C"
  13310.         items = "No Sound"$0D"big elev 1"$0D"big elev 2"$0D"tech elev 1"$0D"te"
  13311.          "ch elev 2"$0D"tech elev 3"$0D"freight elev 1"$0D"freight elev 2"$0D"h"
  13312.          "eavy elev"$0D"rack elev"$0D"rail elev"$0D"squeek elev"$0D"odd elev 1"
  13313.          $0D"odd elev 2"
  13314.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"$0D"9"$0D"1"
  13315.          "0"$0D"11"$0D"12"$0D"13"
  13316.       }
  13317.       stopsnd: =
  13318.       {
  13319.         txt = "&"
  13320.         hint = "Stop Sound"
  13321.         typ = "C"
  13322.         items = "No Sound"$0D"big elev stop1"$0D"big elev stop2"$0D"freight el"
  13323.          "ev stop"$0D"heavy elev stop"$0D"rack stop"$0D"rail stop"$0D"squeek s"
  13324.          "top"$0D"quick stop"
  13325.         values = "0"$0D"1"$0D"2"$0D"3"$0D"4"$0D"5"$0D"6"$0D"7"$0D"8"
  13326.       }
  13327.       volume: =
  13328.       {
  13329.         txt = "&"
  13330.         hint = "Sound Volume 0.0 - 1.0"
  13331.       }
  13332.     }
  13333.     t_Trackchange:incl =
  13334.     {
  13335.       t_Targetname = !
  13336.       t_Parentname = !
  13337.       t_RenderFields = !
  13338.       t_Global = !
  13339.       t_PlatSounds = !
  13340.       height: =
  13341.       {
  13342.         txt = "&"
  13343.         hint = "Travel Altitude"
  13344.       }
  13345.       spawnflags: =
  13346.       {
  13347.         txt = "&"
  13348.         typ = "X1"
  13349.         cap = "Auto Activate train"
  13350.       }
  13351.       spawnflags: =
  13352.       {
  13353.         txt = "&"
  13354.         typ = "X2"
  13355.         cap = "Relink track"
  13356.       }
  13357.       spawnflags: =
  13358.       {
  13359.         txt = "&"
  13360.         typ = "X8"
  13361.         cap = "Start at Bottom"
  13362.       }
  13363.       spawnflags: =
  13364.       {
  13365.         txt = "&"
  13366.         typ = "X16"
  13367.         cap = "Rotate Only"
  13368.       }
  13369.       spawnflags: =
  13370.       {
  13371.         txt = "&"
  13372.         typ = "X64"
  13373.         cap = "X Axis"
  13374.       }
  13375.       spawnflags: =
  13376.       {
  13377.         txt = "&"
  13378.         typ = "X128"
  13379.         cap = "Y Axis"
  13380.       }
  13381.       rotation: =
  13382.       {
  13383.         txt = "&"
  13384.         hint = "Spin amount"
  13385.       }
  13386.       train: =
  13387.       {
  13388.         txt = "&"
  13389.         hint = "Train to Switch"
  13390.       }
  13391.       toptrack: =
  13392.       {
  13393.         txt = "&"
  13394.         hint = "Top Track"
  13395.       }
  13396.       bottomtrack: =
  13397.       {
  13398.         txt = "&"
  13399.         hint = "Bottom Track"
  13400.       }
  13401.       speed: =
  13402.       {
  13403.         txt = "&"
  13404.         hint = "Move/Rotate Speed"
  13405.       }
  13406.     }
  13407.     t_BaseTrain:incl =
  13408.     {
  13409.       t_Targetname = !
  13410.       t_Parentname = !
  13411.       t_Origin = !
  13412.       t_RenderFields = !
  13413.       t_Global = !
  13414.       t_Shadow = !
  13415.       spawnflags: =
  13416.       {
  13417.         txt = "&"
  13418.         typ = "X1"
  13419.         cap = "No Pitch (X-rot)"
  13420.       }
  13421.       spawnflags: =
  13422.       {
  13423.         txt = "&"
  13424.         typ = "X2"
  13425.         cap = "No User Control"
  13426.       }
  13427.       spawnflags: =
  13428.       {
  13429.         txt = "&"
  13430.         typ = "X8"
  13431.         cap = "Passable"
  13432.       }
  13433.       spawnflags: =
  13434.       {
  13435.         txt = "&"
  13436.         typ = "X16"
  13437.         cap = "Fixed Orientation"
  13438.       }
  13439.       spawnflags: =
  13440.       {
  13441.         txt = "&"
  13442.         typ = "X128"
  13443.         cap = "HL1 Train"
  13444.       }
  13445.       spawnflags: =
  13446.       {
  13447.         txt = "&"
  13448.         typ = "X256"
  13449.         cap = "Use max peed for pitch shifting move sound"
  13450.       }
  13451.       spawnflags: =
  13452.       {
  13453.         txt = "&"
  13454.         typ = "X512"
  13455.         cap = "Is unblockable by player"
  13456.       }
  13457.       target: =
  13458.       {
  13459.         txt = "&"
  13460.         hint = "First Stop Target"
  13461.       }
  13462.       startspeed: =
  13463.       {
  13464.         txt = "&"
  13465.         hint = "Max Speed (units / second)"
  13466.       }
  13467.       speed: =
  13468.       {
  13469.         txt = "&"
  13470.         hint = "Initial Speed (units / second)"
  13471.       }
  13472.       velocitytype: =
  13473.       {
  13474.         txt = "&"
  13475.         hint = "Change Velocity"
  13476.         typ = "C"
  13477.         items = "Instantaneously"$0D"Linear blend"$0D"Ease in/ease out"
  13478.         values = "0"$0D"1"$0D"2"
  13479.       }
  13480.       orientationtype: =
  13481.       {
  13482.         txt = "&"
  13483.         hint = "Change angles"
  13484.         typ = "C"
  13485.         items = "Never (fixed orientation)"$0D"Near path_tracks"$0D"Linear ble"
  13486.          "nd"$0D"Ease in/ease out"
  13487.         values = "0"$0D"1"$0D"2"$0D"3"
  13488.       }
  13489.       wheels: =
  13490.       {
  13491.         txt = "&"
  13492.         hint = "Distance Between the Wheels"
  13493.       }
  13494.       height: =
  13495.       {
  13496.         txt = "&"
  13497.         hint = "Height above track"
  13498.       }
  13499.       bank: =
  13500.       {
  13501.         txt = "&"
  13502.         hint = "Bank Angle on Turns"
  13503.       }
  13504.       dmg: =
  13505.       {
  13506.         txt = "&"
  13507.         hint = "Damage on Crush"
  13508.       }
  13509.       _minlight: =
  13510.       {
  13511.         txt = "&"
  13512.         hint = "Minimum Light Level"
  13513.       }
  13514.       MoveSound: =
  13515.       {
  13516.         txt = "&"
  13517.         hint = "Move Sound"
  13518.       }
  13519.       MovePingSound: =
  13520.       {
  13521.         txt = "&"
  13522.         hint = "Move Ping Sound"
  13523.       }
  13524.       StartSound: =
  13525.       {
  13526.         txt = "&"
  13527.         hint = "Start Sound"
  13528.       }
  13529.       StopSound: =
  13530.       {
  13531.         txt = "&"
  13532.         hint = "Stop Sound"
  13533.       }
  13534.       volume: =
  13535.       {
  13536.         txt = "&"
  13537.         hint = "Volume (10 = loudest)"
  13538.       }
  13539.       MoveSoundMinPitch: =
  13540.       {
  13541.         txt = "&"
  13542.         hint = "Min pitch (1-255, > 100 = higher)"
  13543.       }
  13544.       MoveSoundMaxPitch: =
  13545.       {
  13546.         txt = "&"
  13547.         hint = "Max pitch (1-255, > 100 = higher)"
  13548.       }
  13549.       MoveSoundMinTime: =
  13550.       {
  13551.         txt = "&"
  13552.         hint = "Min move sound interval"
  13553.       }
  13554.       MoveSoundMaxTime: =
  13555.       {
  13556.         txt = "&"
  13557.         hint = "Max move sound interval"
  13558.       }
  13559.       input#SetSpeed: =
  13560.       {
  13561.         txt = "&"
  13562.         hint = "Set the speed of the train, as a ratio of max speed [0, 1]"
  13563.       }
  13564.       input#SetSpeedDir: =
  13565.       {
  13566.         txt = "&"
  13567.         hint = "Set the speed of the train, as a ratio of max speed. Negative "
  13568.          "values reverse the direction [-1, 1]"
  13569.       }
  13570.       input#SetSpeedReal: =
  13571.       {
  13572.         txt = "&"
  13573.         hint = "Set the speed of the train. Must be a positive value from 0 to"
  13574.          " max speed."
  13575.       }
  13576.       input#Stop: =
  13577.       {
  13578.         txt = "&"
  13579.         hint = "Stop the train."
  13580.       }
  13581.       input#StartForward: =
  13582.       {
  13583.         txt = "&"
  13584.         hint = "Start the train moving forward."
  13585.       }
  13586.       input#StartBackward: =
  13587.       {
  13588.         txt = "&"
  13589.         hint = "Start the train moving backward."
  13590.       }
  13591.       input#Resume: =
  13592.       {
  13593.         txt = "&"
  13594.         hint = "Resume the train moving in the current direction after it was "
  13595.          "stopped via the 'Stop' or 'Toggle' input."
  13596.       }
  13597.       input#Reverse: =
  13598.       {
  13599.         txt = "&"
  13600.         hint = "Reverse the direction of the train."
  13601.       }
  13602.       input#Toggle: =
  13603.       {
  13604.         txt = "&"
  13605.         hint = "Toggle the train between start and stop."
  13606.       }
  13607.     }
  13608.     func_trackautochange:form =
  13609.     {
  13610.       t_Trackchange = !
  13611.       _minlight: =
  13612.       {
  13613.         txt = "&"
  13614.         hint = "Minimum Light Level"
  13615.       }
  13616.       input#Trigger: =
  13617.       {
  13618.         txt = "&"
  13619.         hint = "Trigger the track change."
  13620.       }
  13621.     }
  13622.     func_trackchange:form =
  13623.     {
  13624.       t_Trackchange = !
  13625.       _minlight: =
  13626.       {
  13627.         txt = "&"
  13628.         hint = "Minimum Light Level"
  13629.       }
  13630.     }
  13631.     func_tracktrain:form =
  13632.     {
  13633.       t_BaseTrain = !
  13634.     }
  13635.     func_tanktrain:form =
  13636.     {
  13637.       t_BaseTrain = !
  13638.       health: =
  13639.       {
  13640.         txt = "&"
  13641.         hint = "Health"
  13642.       }
  13643.       output#OnDeath: =
  13644.       {
  13645.         txt = "&"
  13646.         hint = "Fired when the tank is killed."
  13647.       }
  13648.     }
  13649.     func_traincontrols:form =
  13650.     {
  13651.       t_Parentname = !
  13652.       t_Global = !
  13653.       target: =
  13654.       {
  13655.         txt = "&"
  13656.         hint = "Train Name"
  13657.       }
  13658.     }
  13659.     tanktrain_aitarget:form =
  13660.     {
  13661.       t_Targetname = !
  13662.       target: =
  13663.       {
  13664.         txt = "&"
  13665.         hint = "Tank AI Entity"
  13666.       }
  13667.       newtarget: =
  13668.       {
  13669.         txt = "&"
  13670.         hint = "New Target Entity"
  13671.       }
  13672.     }
  13673.     tanktrain_ai:form =
  13674.     {
  13675.       t_Targetname = !
  13676.       target: =
  13677.       {
  13678.         txt = "&"
  13679.         hint = "Train Name"
  13680.       }
  13681.       startsound: =
  13682.       {
  13683.         txt = "&"
  13684.         hint = "Start Moving Sound"
  13685.       }
  13686.       enginesound: =
  13687.       {
  13688.         txt = "&"
  13689.         hint = "Engine Loop Sound"
  13690.       }
  13691.       movementsound: =
  13692.       {
  13693.         txt = "&"
  13694.         hint = "Vehicle Movement Sound"
  13695.       }
  13696.     }
  13697.     path_track:form =
  13698.     {
  13699.       t_Targetname = !
  13700.       t_Parentname = !
  13701.       t_Angles = !
  13702.       spawnflags: =
  13703.       {
  13704.         txt = "&"
  13705.         typ = "X1"
  13706.         cap = "Disabled"
  13707.       }
  13708.       spawnflags: =
  13709.       {
  13710.         txt = "&"
  13711.         typ = "X2"
  13712.         cap = "Fire once"
  13713.       }
  13714.       spawnflags: =
  13715.       {
  13716.         txt = "&"
  13717.         typ = "X4"
  13718.         cap = "Branch Reverse"
  13719.       }
  13720.       spawnflags: =
  13721.       {
  13722.         txt = "&"
  13723.         typ = "X8"
  13724.         cap = "Disable train"
  13725.       }
  13726.       spawnflags: =
  13727.       {
  13728.         txt = "&"
  13729.         typ = "X16"
  13730.         cap = "Teleport to THIS path track"
  13731.       }
  13732.       target: =
  13733.       {
  13734.         txt = "&"
  13735.         hint = "Next Stop Target"
  13736.       }
  13737.       altpath: =
  13738.       {
  13739.         txt = "&"
  13740.         hint = "Branch Path"
  13741.       }
  13742.       speed: =
  13743.       {
  13744.         txt = "&"
  13745.         hint = "New Train Speed"
  13746.       }
  13747.       radius: =
  13748.       {
  13749.         txt = "&"
  13750.         hint = "Path radius"
  13751.       }
  13752.       orientationtype: =
  13753.       {
  13754.         txt = "&"
  13755.         hint = "Orientation Type"
  13756.         typ = "C"
  13757.         items = "No change"$0D"Face direction of motion"$0D"Face this path_tra"
  13758.          "ck's angles"
  13759.         values = "0"$0D"1"$0D"2"
  13760.       }
  13761.       input#ToggleAlternatePath: =
  13762.       {
  13763.         txt = "&"
  13764.         hint = "Cause the track to toggle to/from its alternate path."
  13765.       }
  13766.       input#EnableAlternatePath: =
  13767.       {
  13768.         txt = "&"
  13769.         hint = "Enable the alternate path of the track."
  13770.       }
  13771.       input#DisableAlternatePath: =
  13772.       {
  13773.         txt = "&"
  13774.         hint = "Disable the alternate path of the track."
  13775.       }
  13776.       input#TogglePath: =
  13777.       {
  13778.         txt = "&"
  13779.         hint = "Cause the track to toggle on/off/"
  13780.       }
  13781.       input#EnablePath: =
  13782.       {
  13783.         txt = "&"
  13784.         hint = "Enable the track."
  13785.       }
  13786.       input#DisablePath: =
  13787.       {
  13788.         txt = "&"
  13789.         hint = "Disable the track."
  13790.       }
  13791.       output#OnPass: =
  13792.       {
  13793.         txt = "&"
  13794.         hint = "Fired when any entity following this path passes this path_tra"
  13795.          "ck node."
  13796.       }
  13797.     }
  13798.     test_traceline:form =
  13799.     {
  13800.       bbox = '-16 -16 -16 16 16 16'
  13801.       t_Angles = !
  13802.     }
  13803.     trigger_autosave:form =
  13804.     {
  13805.       t_Targetname = !
  13806.       master: =
  13807.       {
  13808.         txt = "&"
  13809.         hint = "Master"
  13810.       }
  13811.       NewLevelUnit: =
  13812.       {
  13813.         txt = "&"
  13814.         hint = "Force New Level Unit"
  13815.         typ = "C"
  13816.         items = "No"$0D"Yes"
  13817.         values = "0"$0D"1"
  13818.       }
  13819.     }
  13820.     trigger_changelevel:form =
  13821.     {
  13822.       targetname: =
  13823.       {
  13824.         txt = "&"
  13825.         hint = "Name"
  13826.       }
  13827.       map: =
  13828.       {
  13829.         txt = "&"
  13830.         hint = "New Map Name"
  13831.       }
  13832.       landmark: =
  13833.       {
  13834.         txt = "&"
  13835.         hint = "Landmark Name"
  13836.       }
  13837.       spawnflags: =
  13838.       {
  13839.         txt = "&"
  13840.         typ = "X2"
  13841.         cap = "Disable Touch"
  13842.       }
  13843.       spawnflags: =
  13844.       {
  13845.         txt = "&"
  13846.         typ = "X4"
  13847.         cap = "To Previous Chapter"
  13848.       }
  13849.       input#ChangeLevel: =
  13850.       {
  13851.         txt = "&"
  13852.         hint = "Cause the level change. Use this when triggering the level cha"
  13853.          "nge with a button, etc."
  13854.       }
  13855.       output#OnChangeLevel: =
  13856.       {
  13857.         txt = "&"
  13858.         hint = "Fired when the level changes."
  13859.       }
  13860.     }
  13861.     trigger_gravity:form =
  13862.     {
  13863.       t_Trigger = !
  13864.       gravity: =
  13865.       {
  13866.         txt = "&"
  13867.         hint = "Gravity (0-1)"
  13868.       }
  13869.     }
  13870.     trigger_playermovement:form =
  13871.     {
  13872.       t_Trigger = !
  13873.       spawnflags: =
  13874.       {
  13875.         txt = "&"
  13876.         typ = "X16"
  13877.         cap = "(OBSOLETE, Uncheck me)"
  13878.       }
  13879.       spawnflags: =
  13880.       {
  13881.         txt = "&"
  13882.         typ = "X128"
  13883.         cap = "Disable auto player movement"
  13884.       }
  13885.     }
  13886.     trigger_soundscape:form =
  13887.     {
  13888.       t_Trigger = !
  13889.       soundscape: =
  13890.       {
  13891.         txt = "&"
  13892.         hint = "Soundscape"
  13893.       }
  13894.     }
  13895.     trigger_hurt:form =
  13896.     {
  13897.       t_Trigger = !
  13898.       t_Targetname = !
  13899.       master: =
  13900.       {
  13901.         txt = "&"
  13902.         hint = "Master (Obsolete)"
  13903.       }
  13904.       damage: =
  13905.       {
  13906.         txt = "&"
  13907.         hint = "Damage"
  13908.       }
  13909.       damagecap: =
  13910.       {
  13911.         txt = "&"
  13912.         hint = "Damage Cap"
  13913.       }
  13914.       damagetype: =
  13915.       {
  13916.         txt = "&"
  13917.         hint = "Damage Type"
  13918.         typ = "C"
  13919.         items = "GENERIC"$0D"CRUSH"$0D"BULLET"$0D"SLASH"$0D"BURN"$0D"FREEZE"$0D
  13920.          "FALL"$0D"BLAST"$0D"CLUB"$0D"SHOCK"$0D"SONIC"$0D"ENERGYBEAM"$0D"DROWN"
  13921.          $0D"PARALYSE"$0D"NERVEGAS"$0D"POISON"$0D"RADIATION"$0D"DROWNRECOVER"$0D
  13922.          "CHEMICAL"$0D"SLOWBURN"$0D"SLOWFREEZE"
  13923.         values = "0"$0D"1"$0D"2"$0D"4"$0D"8"$0D"16"$0D"32"$0D"64"$0D"128"$0D"2"
  13924.          "56"$0D"512"$0D"1024"$0D"16384"$0D"32768"$0D"65536"$0D"131072"$0D"262"
  13925.          "144"$0D"524288"$0D"1048576"$0D"2097152"$0D"4194304"
  13926.       }
  13927.       damagemodel: =
  13928.       {
  13929.         txt = "&"
  13930.         hint = "Damage Model"
  13931.         typ = "C"
  13932.         items = "Normal"$0D"Doubling w/forgiveness"
  13933.         values = "0"$0D"1"
  13934.       }
  13935.       input#SetDamage: =
  13936.       {
  13937.         txt = "&"
  13938.         hint = "Set a new amount of damage for this trigger."
  13939.       }
  13940.       output#OnHurt: =
  13941.       {
  13942.         txt = "&"
  13943.         hint = "Fired whenever this trigger hurts something other than a playe"
  13944.          "r."
  13945.       }
  13946.       output#OnHurtPlayer: =
  13947.       {
  13948.         txt = "&"
  13949.         hint = "Fired whenever this trigger hurts a player."
  13950.       }
  13951.     }
  13952.     trigger_remove:form =
  13953.     {
  13954.       t_Trigger = !
  13955.       t_Targetname = !
  13956.       output#OnRemove: =
  13957.       {
  13958.         txt = "&"
  13959.         hint = "Fired whenever an entity is removed."
  13960.       }
  13961.     }
  13962.     trigger_multiple:form =
  13963.     {
  13964.       t_Trigger = !
  13965.       wait: =
  13966.       {
  13967.         txt = "&"
  13968.         hint = "Delay Before Reset"
  13969.       }
  13970.       output#OnTrigger: =
  13971.       {
  13972.         txt = "&"
  13973.         hint = "Fired whenever the trigger is activated."
  13974.       }
  13975.     }
  13976.     trigger_once:form =
  13977.     {
  13978.       t_TriggerOnce = !
  13979.       output#OnTrigger: =
  13980.       {
  13981.         txt = "&"
  13982.         hint = "Fired whenever the trigger is activated."
  13983.       }
  13984.     }
  13985.     trigger_look:form =
  13986.     {
  13987.       t_Trigger = !
  13988.       spawnflags: =
  13989.       {
  13990.         txt = "&"
  13991.         typ = "X128"
  13992.         cap = "Fire Once"
  13993.       }
  13994.       spawnflags: =
  13995.       {
  13996.         txt = "&"
  13997.         typ = "X256"
  13998.         cap = "Use Velocity instead of facing"
  13999.       }
  14000.       target: =
  14001.       {
  14002.         txt = "&"
  14003.         hint = "Look Target"
  14004.       }
  14005.       LookTime: =
  14006.       {
  14007.         txt = "&"
  14008.         hint = "LookTime"
  14009.       }
  14010.       FieldOfView: =
  14011.       {
  14012.         txt = "&"
  14013.         hint = "FieldOfView"
  14014.       }
  14015.       Timeout: =
  14016.       {
  14017.         txt = "&"
  14018.         hint = "Timeout"
  14019.       }
  14020.       output#OnTrigger: =
  14021.       {
  14022.         txt = "&"
  14023.         hint = "Fired when the trigger is activated."
  14024.       }
  14025.       output#OnTimeout: =
  14026.       {
  14027.         txt = "&"
  14028.         hint = "Fired after the timeout interval expires if the player never l"
  14029.          "ooked at the target."
  14030.       }
  14031.     }
  14032.     trigger_push:form =
  14033.     {
  14034.       t_Trigger = !
  14035.       pushdir: =
  14036.       {
  14037.         txt = "&"
  14038.         hint = "Push Direction (Pitch Yaw Roll)"
  14039.       }
  14040.       spawnflags: =
  14041.       {
  14042.         txt = "&"
  14043.         typ = "X128"
  14044.         cap = "Once Only"
  14045.       }
  14046.       spawnflags: =
  14047.       {
  14048.         txt = "&"
  14049.         typ = "X256"
  14050.         cap = "Affects Ladders (Half-Life 2)"
  14051.       }
  14052.       speed: =
  14053.       {
  14054.         txt = "&"
  14055.         hint = "Speed of Push"
  14056.       }
  14057.     }
  14058.     trigger_wind:form =
  14059.     {
  14060.       t_Trigger = !
  14061.       t_Angles = !
  14062.       Speed: =
  14063.       {
  14064.         txt = "&"
  14065.         hint = "Speed"
  14066.       }
  14067.       SpeedNoise: =
  14068.       {
  14069.         txt = "&"
  14070.         hint = "Speed Noise"
  14071.       }
  14072.       DirectionNoise: =
  14073.       {
  14074.         txt = "&"
  14075.         hint = "Direction Noise"
  14076.       }
  14077.       HoldTime: =
  14078.       {
  14079.         txt = "&"
  14080.         hint = "Hold Time"
  14081.       }
  14082.       HoldNoise: =
  14083.       {
  14084.         txt = "&"
  14085.         hint = "Hold Noise"
  14086.       }
  14087.       input#SetSpeed: =
  14088.       {
  14089.         txt = "&"
  14090.         hint = "Set the baseline for how hard the wind blows."
  14091.       }
  14092.     }
  14093.     trigger_impact:form =
  14094.     {
  14095.       t_Targetname = !
  14096.       t_Angles = !
  14097.       Magnitude: =
  14098.       {
  14099.         txt = "&"
  14100.         hint = "Magnitude"
  14101.       }
  14102.       noise: =
  14103.       {
  14104.         txt = "&"
  14105.         hint = "Noise"
  14106.       }
  14107.       viewkick: =
  14108.       {
  14109.         txt = "&"
  14110.         hint = "Viewkick"
  14111.       }
  14112.       input#Impact: =
  14113.       {
  14114.         txt = "&"
  14115.         hint = "Fire the impact, pushing all entities within the volume."
  14116.       }
  14117.       input#SetMagnitude: =
  14118.       {
  14119.         txt = "&"
  14120.         hint = "Set the magnitude of the impact."
  14121.       }
  14122.       output#ImpactForce: =
  14123.       {
  14124.         txt = "&"
  14125.         hint = "Fired after an impact. The parameter passed along is the force"
  14126.          " of the impact that was generated."
  14127.       }
  14128.     }
  14129.     trigger_proximity:form =
  14130.     {
  14131.       t_Trigger = !
  14132.       measuretarget: =
  14133.       {
  14134.         txt = "&"
  14135.         hint = "Point to Measure From"
  14136.       }
  14137.       radius: =
  14138.       {
  14139.         txt = "&"
  14140.         hint = "Radius to measure within"
  14141.       }
  14142.       output#NearestEntityDistance: =
  14143.       {
  14144.         txt = "&"
  14145.         hint = "Fired continuously when entities are touching the trigger volu"
  14146.          "me. The output parameter is the distance from the Point to Measure F"
  14147.          "rom to the nearest entity that passed the trigger filters. The dista"
  14148.          "nce is mapped to the radius distance, so it will be 0 when the entit"
  14149.          "y is on the point, and 1 when the entity is at the edge of the radiu"
  14150.          "s."
  14151.       }
  14152.     }
  14153.     trigger_teleport:form =
  14154.     {
  14155.       t_Trigger = !
  14156.       target: =
  14157.       {
  14158.         txt = "&"
  14159.         hint = "Remote Destination"
  14160.       }
  14161.       landmark: =
  14162.       {
  14163.         txt = "&"
  14164.         hint = "Local Destination Landmark"
  14165.       }
  14166.       spawnflags: =
  14167.       {
  14168.         txt = "&"
  14169.         typ = "X32"
  14170.         cap = "Preserve angles even when a local landmark is not specified"
  14171.       }
  14172.     }
  14173.     trigger_transition:form =
  14174.     {
  14175.       t_Targetname = !
  14176.     }
  14177.     ai_speechfilter:form =
  14178.     {
  14179.       t_Targetname = !
  14180.       t_ResponseContext = !
  14181.       subject: =
  14182.       {
  14183.         txt = "&"
  14184.         hint = "Subject(s)"
  14185.       }
  14186.       IdleModifier: =
  14187.       {
  14188.         txt = "&"
  14189.         hint = "Idle modifier."
  14190.       }
  14191.       NeverSayHello: =
  14192.       {
  14193.         txt = "&"
  14194.         hint = "Greet Player?"
  14195.         typ = "C"
  14196.         items = "Yes"$0D"No"
  14197.         values = "0"$0D"1"
  14198.       }
  14199.     }
  14200.     water_lod_control:form =
  14201.     {
  14202.       t_Targetname = !
  14203.       cheapwaterstartdistance: =
  14204.       {
  14205.         txt = "&"
  14206.         hint = "Start Transition to Cheap Water"
  14207.       }
  14208.       cheapwaterenddistance: =
  14209.       {
  14210.         txt = "&"
  14211.         hint = "End Transition to Cheap Water"
  14212.       }
  14213.       input#SetCheapWaterStartDistance: =
  14214.       {
  14215.         txt = "&"
  14216.         hint = "Set the distance that water starts transitioning to cheap wate"
  14217.          "r."
  14218.       }
  14219.       input#SetCheapWaterEndDistance: =
  14220.       {
  14221.         txt = "&"
  14222.         hint = "Set the distance that water finishes transitioning to cheap wa"
  14223.          "ter."
  14224.       }
  14225.     }
  14226.     info_camera_link:form =
  14227.     {
  14228.       t_Targetname = !
  14229.       target: =
  14230.       {
  14231.         txt = "&"
  14232.         hint = "Entity Whose Material Uses _rt_camera"
  14233.       }
  14234.       PointCamera: =
  14235.       {
  14236.         txt = "&"
  14237.         hint = "Camera Name"
  14238.       }
  14239.       input#SetCamera: =
  14240.       {
  14241.         txt = "&"
  14242.         hint = "Set the camera to use. The parameter should be the name of a p"
  14243.          "oint_camera entity in the map."
  14244.       }
  14245.     }
  14246.     logic_measure_movement:form =
  14247.     {
  14248.       t_Targetname = !
  14249.       MeasureTarget: =
  14250.       {
  14251.         txt = "&"
  14252.         hint = "Entity to Measure"
  14253.       }
  14254.       MeasureReference: =
  14255.       {
  14256.         txt = "&"
  14257.         hint = "Measure Reference"
  14258.       }
  14259.       Target: =
  14260.       {
  14261.         txt = "&"
  14262.         hint = "Entity to Move"
  14263.       }
  14264.       TargetReference: =
  14265.       {
  14266.         txt = "&"
  14267.         hint = "Movement Reference"
  14268.       }
  14269.       TargetScale: =
  14270.       {
  14271.         txt = "&"
  14272.         hint = "Movement scale"
  14273.       }
  14274.       MeasureType: =
  14275.       {
  14276.         txt = "&"
  14277.         hint = "Measurement Type"
  14278.         typ = "C"
  14279.         items = "Position"$0D"Eye position"
  14280.         values = "0"$0D"1"
  14281.       }
  14282.       input#SetMeasureTarget: =
  14283.       {
  14284.         txt = "&"
  14285.         hint = "Set the Entity to Measure, whose movement should be measured."
  14286.       }
  14287.       input#SetMeasureReference: =
  14288.       {
  14289.         txt = "&"
  14290.         hint = "Set the Measure Reference entity."
  14291.       }
  14292.       input#Target: =
  14293.       {
  14294.         txt = "&"
  14295.         hint = "Set the Entity to Move, which will be moved to mimic the measu"
  14296.          "red entity."
  14297.       }
  14298.       input#SetTargetReference: =
  14299.       {
  14300.         txt = "&"
  14301.         hint = "Set the Movement Reference entity."
  14302.       }
  14303.       input#SetTargetScale: =
  14304.       {
  14305.         txt = "&"
  14306.         hint = "Set the scale to divide the measured movements by."
  14307.       }
  14308.       input#Enable: =
  14309.       {
  14310.         txt = "&"
  14311.         hint = "Enable the logic_measure_movement."
  14312.       }
  14313.       input#Disable: =
  14314.       {
  14315.         txt = "&"
  14316.         hint = "Disable the logic_measure_movement."
  14317.       }
  14318.     }
  14319.     npc_furniture:form =
  14320.     {
  14321.       t_BaseNPC = !
  14322.       model: =
  14323.       {
  14324.         txt = "&"
  14325.         hint = "Model"
  14326.         typ = "B"
  14327.         Cap = "models..."
  14328.         form = "t_models_hl2_form:form"
  14329.       }
  14330.     }
  14331.     env_credits:form =
  14332.     {
  14333.       bbox = '-8 -8 -8 8 8 8'
  14334.       t_Targetname = !
  14335.       input#RollCredits: =
  14336.       {
  14337.         txt = "&"
  14338.         hint = "Start the intro credits rolling."
  14339.       }
  14340.       input#RollOutroCredits: =
  14341.       {
  14342.         txt = "&"
  14343.         hint = "Start the outro credits rolling."
  14344.       }
  14345.       input#ShowLogo: =
  14346.       {
  14347.         txt = "&"
  14348.         hint = "Show the HL2 logo."
  14349.       }
  14350.       output#OnCreditsDone: =
  14351.       {
  14352.         txt = "&"
  14353.         hint = "Fired when the credits having finished rolling."
  14354.       }
  14355.     }
  14356.     material_modify_control:form =
  14357.     {
  14358.       bbox = '-8 -8 -8 8 8 8'
  14359.       t_Parentname = !
  14360.       t_Targetname = !
  14361.       materialName: =
  14362.       {
  14363.         txt = "&"
  14364.         hint = "Material to modify."
  14365.       }
  14366.       materialVar: =
  14367.       {
  14368.         txt = "&"
  14369.         hint = "Material variable to modify."
  14370.       }
  14371.       input#SetMaterialVar: =
  14372.       {
  14373.         txt = "&"
  14374.         hint = "Fire to modify a material variable. The argument is the value "
  14375.          "to set the variable to."
  14376.       }
  14377.       input#SetMaterialVarToCurrentTime: =
  14378.       {
  14379.         txt = "&"
  14380.         hint = "This sets the material variable to the current time on the ser"
  14381.          "ver."
  14382.       }
  14383.     }
  14384.     point_devshot_camera:form =
  14385.     {
  14386.       t_Angles = !
  14387.       cameraname: =
  14388.       {
  14389.         txt = "&"
  14390.         hint = "Camera Name"
  14391.       }
  14392.       FOV: =
  14393.       {
  14394.         txt = "&"
  14395.         hint = "Camera FOV"
  14396.       }
  14397.     }
  14398.   }
  14399. }
  14400.